SofaTest.h

Classes

SofaTest -- Wrapping of IAU SOFA Fortran routines and test class (full description)
Global Functions -- Global Fortran function wraps (full description)

class SofaTest

Interface

Public Members
SofaTest()
SofaTest(const SofaTest &other)
~SofaTest()
SofaTest &operator=(const SofaTest &other)
void clear()
void put(const Double in)
void show(ostream &os)
void showHisto(ostream &os)
Private Members
void copy(const SofaTest &other)

Description

Review Status

Reviewed By:
wbrouw
Date Reviewed:
2003/09/08
Programs:
Tests:

Synopsis

The definition in this file enable the use of the IAU SOFA Fortran routines in the C++ test routines. By using the provided macro IAUR care is taken of SOFA prefixes and probable extra underscores given by some compilers.

For information on SOFA see the SOFA page at IAU or at the currenthome of SOFA at Rutherford

The SofaTest class can be used to provide histogram of test data. The resolution is defaulted to 500 steps, compressed to 40 in the output.

Example

    SofaTest dpsi;	// Create an histogram class
    // Loop over the following two statements to fill histogram
    // Calculate a Double dpsival
    dpsi.put(dpsival);
    // Show the result
    cout.precision(4);
    cout << "aips++ dpsi(mas):" << endl;
    dpsi.show(cout);
    dpsi.showHisto(cout);
    
The result will look like:
    aips++ dpsi (mas):
    5001 points were accumulated
    with max = 1.529e-09, and min = -1.61e-09
    and an average of 5.066e-12 and a standard deviation of 2.42e-10
    
    23 counts per step; 0.0004 value.
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |-*
     |-*
     |---*
     |---*
     |-----*
     |---------*
     |---------------------*
     _--------------------------------------------------------*
     |---------------------------------------------------------*
     |----------------------*
     |------------*
     |------*
     |----*
     |--*
     |-*
     |-*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
     |*
    

Motivation

To enable in-line testing of the aips++ Measures conversion routines.

To Do

Member Description

SofaTest()

Constructors Create an empty SofaTest class, ready for accumulation

SofaTest(const SofaTest &other)

Copy

~SofaTest()

Destructor

SofaTest &operator=(const SofaTest &other)

Operators Assign

void clear()

Methods Clear the test class

void put(const Double in)

Accumulate statistics

void show(ostream &os)

Show statistics

void showHisto(ostream &os)

void copy(const SofaTest &other)

Methods Copy object


Global Fortran function wraps (source)

Interface

extern "C" void IAUR(cal2jd)(const Int &iy, const Int &im, const Int &id, Double &djm0, Double &djm, Int &j)
extern "C" void IAUR(epj2jd)(const Double &epj, Double &djm0, Double &djm)
extern "C" void IAUR(prec76)(const Double &ep01, const Double &ep02, const Double &ep11, const Double &ep12, Double &zeta, Double &z, Double &theta)
extern "C" void IAUR(pmat76)(const Double &epoch1, const Double &epoch2, Double *rmatp)
extern "C" void IAUR(nut80)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)
extern "C" void IAUR(nutm80)(const Double &epoch1, const Double &epoch2, Double *rmatn)
extern "C" Double IAUR(obl80)(const Double &epoch1, const Double &epoch2)
extern "C" void IAUR(pr00)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)
extern "C" void IAUR(bi00)(Double &dpsi, Double &deps, Double &dra)
extern "C" void IAUR(bp00)(const Double &epoch1, const Double &epoch2, Double *rb, Double *rp, Double *rbp)
extern "C" void IAUR(pnm80)(const Double &epoch1, const Double &epoch2, Double *rmatpn)
extern "C" void IAUR(pn00a)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps, Double &epsa, Double *rb, Double *rp, Double *rbp, Double *rn, Double *rnpn)
extern "C" void IAUR(pn00b)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps, Double &epsa, Double *rb, Double *rp, Double *rbp, Double *rn, Double *rnpn)
extern "C" void IAUR(pr00)(const Double &ep01, const Double &ep02, Double &dpsipr, Double &depspr)
extern "C" void IAUR(nut00b)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)
extern "C" void IAUR(nut00a)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)
extern "C" void IAUR(num00a)(const Double &epoch1, const Double &epoch2, Double *rn)
extern "C" void IAUR(num00b)(const Double &epoch1, const Double &epoch2, Double *rn)
extern "C" void IAUR(c2t00a)(const Double &tta, const Double &ttb, const Double &uta, const Double &utb, const Double &xp, const Double &yp, Double *rc2t)
extern "C" Double IAUR(sp00)(const Double &date1, const Double &date2)
extern "C" void IAUR(pom00)(const Double &xp, const Double &yp, const Double &sp, Double *rpom)
extern "C" Double IAUR(gmst00)(const Double &uta, const Double &utb, const Double &tta, const Double &ttb)
extern "C" Double IAUR(era00)(const Double &uta, const Double &utb)
extern "C" Double IAUR(gmst82)(const Double &dj1, const Double &dj2)
extern "C" Double IAUR(ee00a)(const Double &date1, const Double &date2)
extern "C" Double IAUR(eect00)(const Double &date1, const Double &date2)
extern "C" Double IAUR(eqeq94)(const Double &date1, const Double &date2)
extern "C" void IAUR(pnm00a)(const Double &date1, const Double &date2, Double *rbpn)
extern "C" void IAUR(c2teqx)(Double *rbpn, const Double &gst, Double *rpom, Double *rc2t)
extern "C" void IAUR(rz)(const Double &psi, Double *r)
extern "C" void IAUR(cr)(Double *r, Double *c)

Description

Member Description

extern "C" void IAUR(cal2jd)(const Int &iy, const Int &im, const Int &id, Double &djm0, Double &djm, Int &j)

extern "C" void IAUR(epj2jd)(const Double &epj, Double &djm0, Double &djm)

extern "C" void IAUR(prec76)(const Double &ep01, const Double &ep02, const Double &ep11, const Double &ep12, Double &zeta, Double &z, Double &theta)

extern "C" void IAUR(pmat76)(const Double &epoch1, const Double &epoch2, Double *rmatp)

extern "C" void IAUR(nut80)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)

extern "C" void IAUR(nutm80)(const Double &epoch1, const Double &epoch2, Double *rmatn)

extern "C" Double IAUR(obl80)(const Double &epoch1, const Double &epoch2)

extern "C" void IAUR(pr00)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)

extern "C" void IAUR(bi00)(Double &dpsi, Double &deps, Double &dra)

extern "C" void IAUR(bp00)(const Double &epoch1, const Double &epoch2, Double *rb, Double *rp, Double *rbp)

extern "C" void IAUR(pnm80)(const Double &epoch1, const Double &epoch2, Double *rmatpn)

extern "C" void IAUR(pn00a)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps, Double &epsa, Double *rb, Double *rp, Double *rbp, Double *rn, Double *rnpn)

extern "C" void IAUR(pn00b)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps, Double &epsa, Double *rb, Double *rp, Double *rbp, Double *rn, Double *rnpn)

extern "C" void IAUR(pr00)(const Double &ep01, const Double &ep02, Double &dpsipr, Double &depspr)

extern "C" void IAUR(nut00b)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)

extern "C" void IAUR(nut00a)(const Double &epoch1, const Double &epoch2, Double &dpsi, Double &deps)

extern "C" void IAUR(num00a)(const Double &epoch1, const Double &epoch2, Double *rn)

extern "C" void IAUR(num00b)(const Double &epoch1, const Double &epoch2, Double *rn)

extern "C" void IAUR(c2t00a)(const Double &tta, const Double &ttb, const Double &uta, const Double &utb, const Double &xp, const Double &yp, Double *rc2t)

extern "C" Double IAUR(sp00)(const Double &date1, const Double &date2)

extern "C" void IAUR(pom00)(const Double &xp, const Double &yp, const Double &sp, Double *rpom)

extern "C" Double IAUR(gmst00)(const Double &uta, const Double &utb, const Double &tta, const Double &ttb)

extern "C" Double IAUR(era00)(const Double &uta, const Double &utb)

extern "C" Double IAUR(gmst82)(const Double &dj1, const Double &dj2)

extern "C" Double IAUR(ee00a)(const Double &date1, const Double &date2)

extern "C" Double IAUR(eect00)(const Double &date1, const Double &date2)

extern "C" Double IAUR(eqeq94)(const Double &date1, const Double &date2)

extern "C" void IAUR(pnm00a)(const Double &date1, const Double &date2, Double *rbpn)

extern "C" void IAUR(c2teqx)(Double *rbpn, const Double &gst, Double *rpom, Double *rc2t)

extern "C" void IAUR(rz)(const Double &psi, Double *r)

extern "C" void IAUR(cr)(Double *r, Double *c)