R3Grids Package


Description:

The R3Grids package supports basic operations on grids. It contains classes representing axis-aligned regular grids in 2D and 3D (R2Grid and R3Grid), as well as grids defined on the surface and interior of a sphere (R2SphericalGrid and R3SphericalGrid). It also contains classes for representing the harmonic decomposition of the spherical grids (R2SphericalHarmonics and R3SphericalHarmonics). Finally, it contains some useful functions for aligning grids.

Cartesian grids:

Spherical grids:

Spherical harmonics:


R2Grid

Base Classes:

Public Base Classes:

None

Member Functions:

Constructors:

R2Grid(int xresolution = 0, int yresolution = 0);
R2Grid(const R2Grid& grid);
~R2Grid(void);

Grid property functions:

int NEntries() const;
int XResolution(void) const;
int YResolution(void) const;
int Resolution(RNDimension dim) const;
RNScalar Sum(void) const;
RNScalar Mean(void) const;
RNScalar Maximum(void) const;
RNScalar Minimum(void) const;
RNInterval Range(void) const;
RNScalar L1Norm(void) const;
RNScalar L2Norm(void) const;
RNScalar Area(void) const;
int Cardinality(void) const;

Transformation property functions:

const R2Affine& WorldToGridTransformation(void) const;
const R2Affine& GridToWorldTransformation(void) const;
RNScalar WorldToGridScaleFactor(void) const;
RNScalar GridToWorldScaleFactor(void) const;

Grid value access functions:

RNScalar GridValue(int i, int j) const;
RNScalar GridValue(RNCoord x, RNCoord y) const;
RNScalar GridValue(const R2Point& grid_point) const;
RNScalar WorldValue(RNCoord x, RNCoord y) const;
RNScalar WorldValue(const R2Point& world_point) const;
RNScalar& operator()(int i, int j);

Grid manipulation functions:

void Abs(void);
void Sqrt(void);
void Square(void);
void Negate(void);
void Invert(void);
void Normalize(void);
void Clear(RNScalar value = 0);
void Add(RNScalar value);
void Add(const R2Grid& grid);
void Subtract(RNScalar value);
void Subtract(const R2Grid& grid);
void Multiply(RNScalar value);
void Multiply(const R2Grid& grid);
void Divide(RNScalar value);
void Divide(const R2Grid& grid);
void Threshold(RNScalar threshold, RNScalar low, RNScalar high);
void SquaredDistanceTransform(void);
void SetGridValue(int i, int j, RNScalar value);
void AddGridValue(int i, int j, RNScalar value);

Arithmetic operators:

R2Grid& operator=(const R2Grid& grid);
R2Grid& operator+=(RNScalar scale);
R2Grid& operator+=(const R2Grid& grid);
R2Grid& operator-=(RNScalar scale);
R2Grid& operator-=(const R2Grid& grid);
R2Grid& operator*=(RNScalar scale);
R2Grid& operator*=(const R2Grid& grid);
R2Grid& operator/=(RNScalar scale);
R2Grid& operator/=(const R2Grid& grid);

Rasterization functions:

void RasterizeGridPoint(RNCoord x, RNCoord y, RNScalar value);
void RasterizeWorldPoint(RNCoord x, RNCoord y, RNScalar value);
void RasterizeGridPoint(const R2Point& point, RNScalar value);
void RasterizeWorldPoint(const R2Point& point, RNScalar value);
void RasterizeGridSpan(const int p1[3], const int p2[3], RNScalar value);
void RasterizeGridSpan(const R2Point& p1, const R2Point& p2, RNScalar value);
void RasterizeWorldSpan(const R2Point& p1, const R2Point& p2, RNScalar value);
void RasterizeGridTriangle(const int p1[3], const int p2[3], const int p3[3], RNScalar value);
void RasterizeGridTriangle(const R2Point& p1, const R2Point& p2, const R2Point& p3, RNScalar value);
void RasterizeWorldTriangle(const R2Point& p1, const R2Point& p2, const R2Point& p3, RNScalar value);
void RasterizeGridCircle(const R2Point& center, RNLength radius, RNScalar value);
void RasterizeWorldCircle(const R2Point& center, RNLength radius, RNScalar value);

Relationship functions:

RNScalar Dot(const R2Grid& grid) const;
RNScalar L1Distance(const R2Grid& grid) const;
RNScalar L2Distance(const R2Grid& grid) const;
RNScalar L2DistanceSquared(const R2Grid& grid) const;

Transformation manipulation functions:

void SetWorldToGridTransformation(const R2Affine& affine);
void SetWorldToGridTransformation(const R2Box& world_box);
void SetWorldToGridTransformation(const R2Point& world_origin, const R2Vector& world_xaxis, RNLength world_radius);

Transformation utility functions:

R2Point WorldPosition(const R2Point& grid_point) const;
R2Point GridPosition(const R2Point& world_point) const;
R2Point WorldPosition(RNCoord x, RNCoord y) const;
R2Point GridPosition(RNCoord x, RNCoord y) const;

I/O functions:

int ReadFile(const char *filename);
int WriteFile(const char *filename) const;
int Read(FILE *fp = NULL);
int Write(FILE *fp = NULL) const;
int Print(FILE *fp = NULL) const;

Debugging functions:

const RNScalar *GridValues(void) const;


R2SphericalGrid

Base Classes:

Public Base Classes:

None

Member Functions:

Constructors:

R2SphericalGrid(int phi_resolution = 0, int theta_resolution = 0);
R2SphericalGrid(const R2SphericalGrid& grid);

Grid property functions:

int NEntries() const;
int PhiResolution(void) const;
int ThetaResolution(void) const;
int Resolution(int dim) const;
RNScalar Sum(void) const;
RNScalar Mean(void) const;
RNScalar Maximum(void) const;
RNScalar Minimum(void) const;
RNInterval Range(void) const;
RNScalar L1Norm(void) const;
RNScalar L2Norm(void) const;
RNScalar Area(void) const;
RNScalar Integral(RNScalar (*f)(RNScalar)) const;
RNScalar Integral(const R2SphericalGrid& g, RNScalar (*f)(RNScalar, RNScalar)) const;
int Cardinality(void) const;

Grid value access functions:

RNScalar GridValue(int i, int j) const;
RNScalar GridValue(RNCoord x, RNCoord y) const;
RNScalar GridValue(const R2Point& grid_point) const;
RNScalar& operator()(int i, int j);

Grid manipulation functions:

void Abs(void);
void Sqrt(void);
void Square(void);
void Negate(void);
void Invert(void);
void Normalize(void);
void Clear(RNScalar value = 0);
void Add(RNScalar value);
void Add(const R2SphericalGrid& grid);
void Subtract(RNScalar value);
void Subtract(const R2SphericalGrid& grid);
void Multiply(RNScalar value);
void Multiply(const R2SphericalGrid& grid);
void Divide(RNScalar value);
void Divide(const R2SphericalGrid& grid);
void Threshold(RNScalar threshold, RNScalar low, RNScalar high);
void SetGridValue(int i, int j, RNScalar value);
void AddGridValue(int i, int j, RNScalar value);

Arithmetic operators:

R2SphericalGrid& operator=(const R2SphericalGrid& grid);
R2SphericalGrid& operator+=(RNScalar scale);
R2SphericalGrid& operator+=(const R2SphericalGrid& grid);
R2SphericalGrid& operator-=(RNScalar scale);
R2SphericalGrid& operator-=(const R2SphericalGrid& grid);
R2SphericalGrid& operator*=(RNScalar scale);
R2SphericalGrid& operator*=(const R2SphericalGrid& grid);
R2SphericalGrid& operator/=(RNScalar scale);
R2SphericalGrid& operator/=(const R2SphericalGrid& grid);

Relationship functions:

RNScalar Dot(const R2SphericalGrid& grid) const;
RNScalar L1Distance(const R2SphericalGrid& grid) const;
RNScalar L2Distance(const R2SphericalGrid& grid) const;
RNScalar L2DistanceSquared(const R2SphericalGrid& grid) const;

Transformation utility functions:

R3Point WorldPosition(const R2Point& grid_point) const;
R3Vector WorldVector(const R2Vector& grid_vector) const;
R2Point GridPosition(const R3Point& world_point) const;
R2Point GridPosition(const R3Vector& world_vector) const;
R3Point WorldPosition(RNCoord x, RNCoord y) const;
R2Point GridPosition(RNCoord x, RNCoord y, RNCoord z) const;

I/O functions:

int ReadFile(const char *filename);
int WriteFile(const char *filename) const;
int Write(FILE *fp = NULL) const;
int Read(FILE *fp = NULL);
int Print(FILE *fp = NULL) const;

Spherical harmonics transform:

int ForwardSphericalHarmonicTransform(R2SphericalHarmonics& harmonics) const;

Debugging functions:

const RNScalar *GridValues(void) const;


R2SphericalHarmonics

Base Classes:

Public Base Classes:

None

Member Functions:

Constructors:

R2SphericalHarmonics(int bandwidth = 0);
R2SphericalHarmonics(const R2SphericalHarmonics& harmonics);
~R2SphericalHarmonics(void);

Harmonics property functions:

int Bandwidth(void) const;
int NCoefficients(void) const;
RNScalar L1Norm(void) const;
RNScalar L1Norm(int L) const;
RNScalar L1Norm(int L, int M) const;
RNScalar L2Norm(void) const;
RNScalar L2Norm(int L) const;
RNScalar L2Norm(int L, int M) const;
RNScalar L2NormSquared(void) const;
RNScalar L2NormSquared(int L) const;
RNScalar L2NormSquared(int L, int M) const;

Coefficient access functions:

const RNScalar *Coefficients(void) const;
const RNScalar *Coefficients(int L, int M) const;
RNScalar Coefficient(int L, int M, int k) const;
RNScalar RealCoefficient(int L, int M) const;
RNScalar ImaginaryCoefficient(int L, int M) const;

Harmonics manipulation functions:

void Clear(RNScalar value = 0);
void SetRealCoefficient(int L, int M, RNScalar value);
void SetImaginaryCoefficient(int L, int M, RNScalar value);

Relationship functions:

RNScalar Dot(const R2SphericalHarmonics& harmonics) const;
RNScalar L1Distance(const R2SphericalHarmonics& harmonics) const;
RNScalar L2Distance(const R2SphericalHarmonics& harmonics) const;
RNScalar L2DistanceSquared(const R2SphericalHarmonics& harmonics) const;

I/O functions:

int ReadFile(const char *filename);
int WriteFile(const char *filename) const;
int Read(FILE *fp = NULL);
int Write(FILE *fp = NULL) const;
int Print(FILE *fp = NULL) const;

Spherical harmonics transform:

int InverseSphericalHarmonicTransform(R2SphericalGrid& grid) const;

Utility functions:

int Index(int L, int M) const;


R3Grid

Base Classes:

Public Base Classes:

None

Member Functions:

Constructors:

R3Grid(int xresolution = 0, int yresolution = 0, int zresolution = 0);
R3Grid(const R3Grid& grid);
~R3Grid(void);

Grid property functions:

int NEntries(void) const;
int XResolution(void) const;
int YResolution(void) const;
int ZResolution(void) const;
int Resolution(RNDimension dim) const;
RNScalar Sum(void) const;
RNScalar Mean(void) const;
RNScalar Variance(void) const;
RNScalar StandardDeviation(void) const;
RNScalar Maximum(void) const;
RNScalar Minimum(void) const;
RNInterval Range(void) const;
RNScalar L1Norm(void) const;
RNScalar L2Norm(void) const;
RNScalar L2NormSquared(void) const;
RNScalar Volume(void) const;
int Cardinality(void) const;
R3Box GridBox(void) const;
R3Box WorldBox(void) const;

Transformation property functions:

const R3Affine& WorldToGridTransformation(void) const;
const R3Affine& GridToWorldTransformation(void) const;
RNScalar WorldToGridScaleFactor(void) const;
RNScalar GridToWorldScaleFactor(void) const;
RNScalar WorldSpacing(RNDimension dim) const;

Grid value access functions:

RNScalar GridValue(int index) const;
RNScalar GridValue(int i, int j, int k) const;
RNScalar GridValue(RNCoord x, RNCoord y, RNCoord z) const;
RNScalar GridValue(const R3Point& grid_point) const;
RNScalar WorldValue(RNCoord x, RNCoord y, RNCoord z) const;
RNScalar WorldValue(const R3Point& world_point) const;
RNScalar& operator()(int i, int j,int k);

Grid manipulation functions:

void Abs(void);
void Sqrt(void);
void Square(void);
void Negate(void);
void Invert(void);
void Normalize(void);
void DetectEdges(void);
void Dilate(RNScalar grid_distance);
void Erode(RNScalar grid_distance);
void Blur(RNScalar grid_sigma = 2);
void Clear(RNScalar value = 0);
void Add(RNScalar value);
void Add(const R3Grid& grid);
void Add(const R3Grid& grid, const R3Point& grid_position, const R3Point& filter_origin, RNScalar amplitude = 1);
void Add(const R3SphericalGrid& grid);
void Subtract(RNScalar value);
void Subtract(const R3Grid& grid);
void Multiply(RNScalar value);
void Multiply(const R3Grid& grid);
void Divide(RNScalar value);
void Divide(const R3Grid& grid);
void Pow(RNScalar exponent);
void Mask(const R3Grid& grid);
void Threshold(RNScalar threshold, RNScalar low, RNScalar high);
void SquaredDistanceTransform(void);
void Voronoi(R3Grid *squared_distance_grid = NULL);
void Gauss(RNLength sigma = sqrt(8.0), RNBoolean square = TRUE);
void Resample(int xres, int yres, int zres);
void SetGridValue(int index, RNScalar value);
void SetGridValue(int i, int j, int k, RNScalar value);
void AddGridValue(int i, int j, int k, RNScalar value);

Arithmetic operators:

R3Grid& operator=(const R3Grid& grid);
R3Grid& operator+=(RNScalar scale);
R3Grid& operator+=(const R3Grid& grid);
R3Grid& operator-=(RNScalar scale);
R3Grid& operator-=(const R3Grid& grid);
R3Grid& operator*=(RNScalar scale);
R3Grid& operator*=(const R3Grid& grid);
R3Grid& operator/=(RNScalar scale);
R3Grid& operator/=(const R3Grid& grid);

Rasterization functions:

void RasterizeGridPoint(RNCoord x, RNCoord y, RNCoord z, RNScalar value);
void RasterizeWorldPoint(RNCoord x, RNCoord y, RNCoord z, RNScalar value);
void RasterizeGridPoint(const R3Point& point, RNScalar value);
void RasterizeWorldPoint(const R3Point& point, RNScalar value);
void RasterizeGridSpan(const int p1[3], const int p2[3], RNScalar value);
void RasterizeGridSpan(const R3Point& p1, const R3Point& p2, RNScalar value);
void RasterizeWorldSpan(const R3Point& p1, const R3Point& p2, RNScalar value);
void RasterizeGridTriangle(const int p1[3], const int p2[3], const int p3[3], RNScalar value);
void RasterizeGridTriangle(const R3Point& p1, const R3Point& p2, const R3Point& p3, RNScalar value);
void RasterizeWorldTriangle(const R3Point& p1, const R3Point& p2, const R3Point& p3, RNScalar value);
void RasterizeGridSphere(const R3Point& center, RNLength radius, RNScalar value, RNBoolean solid = TRUE);
void RasterizeWorldSphere(const R3Point& center, RNLength radius, RNScalar value, RNBoolean solid = TRUE);

Relationship functions:

RNScalar Dot(const R3Grid& grid) const;
RNScalar L1Distance(const R3Grid& grid) const;
RNScalar L2Distance(const R3Grid& grid) const;
RNScalar L2DistanceSquared(const R3Grid& grid) const;

Transformation manipulation functions:

void SetWorldToGridTransformation(const R3Affine& affine);
void SetWorldToGridTransformation(const R3Box& world_box);
void SetWorldToGridTransformation(const R3Point& world_origin, const R3Vector& world_axis1, const R3Vector& world_axis2, RNLength world_radius);

Transformation utility functions:

R3Point WorldPosition(const R3Point& grid_point) const;
R3Point GridPosition(const R3Point& world_point) const;
R3Point WorldPosition(RNCoord x, RNCoord y, RNCoord z) const;
R3Point GridPosition(RNCoord x, RNCoord y, RNCoord z) const;

I/O functions:

int ReadFile(const char *filename);
int WriteFile(const char *filename) const;
int Read(FILE *fp = NULL);
int Write(FILE *fp = NULL) const;
int Print(FILE *fp = NULL) const;

Visualization functions:

void DrawIsoSurface(RNScalar isolevel) const;
void DrawSlice(int dim, int coord) const;

Utility functions:

int ConnectedComponents(RNScalar isolevel = 0, int max_components = 0, int *seeds = NULL, int *sizes = NULL, int *grid_components = NULL);
int GenerateIsoSurface(RNScalar isolevel, R3Point *points, int max_points) const;

Debugging functions:

const RNScalar *GridValues(void) const;
void IndicesToIndex(int i, int j, int k, int& index);
void IndexToIndices(int index, int& i, int& j, int& k);

Gaussian filtering:

RNScalar GridValue(RNCoord x, RNCoord y, RNCoord z, RNLength sigma) const;
RNScalar WorldValue(RNCoord x, RNCoord y, RNCoord z, RNLength sigma) const;
void RasterizeGridPoint(RNCoord x, RNCoord y, RNCoord z, RNScalar value, RNLength sigma);
void RasterizeWorldPoint(RNCoord x, RNCoord y, RNCoord z, RNScalar value, RNLength sigma);


R3SphericalGrid

Base Classes:

Public Base Classes:

None

Member Functions:

Constructors:

R3SphericalGrid(int phi_resolution = 0, int theta_resolution = 0, int radius_resolution = 0);
R3SphericalGrid(const R3SphericalGrid& grid);
~R3SphericalGrid(void);

Grid property functions:

int NEntries(void) const;
int PhiResolution(void) const;
int ThetaResolution(void) const;
int RadiusResolution(void) const;
int Resolution(int dim) const;
RNScalar Sum(void) const;
RNScalar Maximum(void) const;
RNScalar Minimum(void) const;
RNInterval Range(void) const;
RNScalar L1Norm(void) const;
RNScalar L2Norm(void) const;
RNScalar Volume(void) const;
RNScalar Integral(RNScalar (*f)(RNScalar)) const;
RNScalar Integral(const R3SphericalGrid& g, RNScalar (*f)(RNScalar, RNScalar)) const;
int Cardinality(void) const;
RNLength WorldRadius(void) const;
R3Point WorldOrigin(void) const;
R3Sphere WorldSphere(void) const;
R2SphericalGrid Shell(int shell) const;

Transformation property functions:

const R3Affine& WorldToGridTransformation(void) const;
const R3Affine& GridToWorldTransformation(void) const;
RNScalar WorldToGridScaleFactor(void) const;
RNScalar GridToWorldScaleFactor(void) const;

Grid value access functions:

RNScalar GridValue(int i, int j, int k) const;
RNScalar GridValue(RNCoord x, RNCoord y, RNCoord z) const;
RNScalar GridValue(const R3Point& grid_point) const;
RNScalar WorldValue(RNCoord x, RNCoord y, RNCoord z) const;
RNScalar WorldValue(const R3Point& world_point) const;
RNScalar& operator()(int i, int j,int k);

Grid manipulation functions:

void Abs(void);
void Sqrt(void);
void Square(void);
void Negate(void);
void Invert(void);
void Normalize(void);
void Clear(RNScalar value = 0);
void Add(RNScalar value);
void Add(const R3SphericalGrid& grid);
void Subtract(RNScalar value);
void Subtract(const R3SphericalGrid& grid);
void Multiply(RNScalar value);
void Multiply(const R3SphericalGrid& grid);
void Divide(RNScalar value);
void Divide(const R3SphericalGrid& grid);
void Threshold(RNScalar threshold, RNScalar low, RNScalar high);
void SetGridValue(int i, int j, int k, RNScalar value);
void AddGridValue(int i, int j, int k, RNScalar value);
void Add(const R3Grid& grid);

Arithmetic operators:

R3SphericalGrid& operator=(const R3SphericalGrid& grid);
R3SphericalGrid& operator+=(RNScalar scale);
R3SphericalGrid& operator+=(const R3SphericalGrid& grid);
R3SphericalGrid& operator-=(RNScalar scale);
R3SphericalGrid& operator-=(const R3SphericalGrid& grid);
R3SphericalGrid& operator*=(RNScalar scale);
R3SphericalGrid& operator*=(const R3SphericalGrid& grid);
R3SphericalGrid& operator/=(RNScalar scale);
R3SphericalGrid& operator/=(const R3SphericalGrid& grid);

Rasterization functions:

void RasterizeGridPoint(RNCoord x, RNCoord y, RNCoord z, RNScalar value);
void RasterizeGridPoint(const R3Point& point, RNScalar value);
void RasterizeWorldPoint(RNCoord x, RNCoord y, RNCoord z, RNScalar value);
void RasterizeWorldPoint(const R3Point& point, RNScalar value);

Relationship functions:

RNScalar Dot(const R3SphericalGrid& grid) const;
RNScalar L1Distance(const R3SphericalGrid& grid) const;
RNScalar L2Distance(const R3SphericalGrid& grid) const;
RNScalar L2DistanceSquared(const R3SphericalGrid& grid) const;

Transformation manipulation functions:

void SetWorldToGridTransformation(const R3Box& world_box);
void SetWorldToGridTransformation(const R3Point& world_origin, const R3Vector& world_axis1, const R3Vector& world_axis2, RNLength world_radius);

Transformation utility functions:

R3Point GridPosition(const R3Point& world_point) const;
R3Point GridPosition(RNCoord x, RNCoord y, RNCoord z) const;
R3Point WorldPosition(const R3Point& grid_point) const;
R3Point WorldPosition(RNCoord x, RNCoord y, RNCoord z) const;

I/O functions:

int ReadFile(const char *filename);
int WriteFile(const char *filename) const;
int Read(FILE *fp = NULL);
int Write(FILE *fp = NULL) const;
int Print(FILE *fp = NULL) const;

Spherical harmonics transform:

int ForwardSphericalHarmonicTransform(R3SphericalHarmonics& harmonics) const;

Debugging functions:

const RNScalar *GridValues(void) const;


R3SphericalHarmonics

Base Classes:

Public Base Classes:

None

Member Functions:

Constructors:

R3SphericalHarmonics(int bandwidth = 0, int nshells = 0);
R3SphericalHarmonics(const R3SphericalHarmonics& harmonics);
~R3SphericalHarmonics(void);

Harmonics property functions:

int Bandwidth(void) const;
int NCoefficients(void) const;
int RadiusResolution(void) const;
RNScalar Weight(int S) const;
RNScalar L2Norm(void) const;
RNScalar L2Norm(int S) const;
RNScalar L2Norm(int S, int L) const;
RNScalar L2Norm(int S, int L, int M) const;
RNScalar L2NormSquared(void) const;
RNScalar L2NormSquared(int S) const;
RNScalar L2NormSquared(int S, int L) const;
RNScalar L2NormSquared(int S, int L, int M) const;
const R2SphericalHarmonics& Shell(int shell) const;

Harmonics manipulation functions:

void Clear(RNScalar value = 0);

Relationship functions:

RNScalar Dot(const R3SphericalHarmonics& harmonics) const;
RNScalar L1Distance(const R3SphericalHarmonics& harmonics) const;
RNScalar L2Distance(const R3SphericalHarmonics& harmonics) const;
RNScalar L2DistanceSquared(const R3SphericalHarmonics& harmonics) const;

I/O functions:

int ReadFile(const char *filename);
int WriteFile(const char *filename) const;
int Read(FILE *fp = NULL);
int Write(FILE *fp = NULL) const;
int Print(FILE *fp = NULL) const;

Spherical harmonics transform:

int InverseSphericalHarmonicTransform(R3SphericalGrid& grid) const;


R3WignerD

Base Classes:

Public Base Classes:

None

Member Functions:

Constructors:

R3WignerD(int bandwidth = 0);
R3WignerD(const R3WignerD& w);
~R3WignerD(void);

WignerD property functions:

int Bandwidth(void) const;
int NCoefficients(void) const;

Coefficient access functions:

const double *Coefficients(void) const;
double RealCoefficient(int L, int M1, int M2) const;
double ImaginaryCoefficient(int L, int M1, int M2) const;

WignerD manipulation functions:

void Clear(void);
void AddSphericalHarmonics(const R2SphericalHarmonics& harmonics1, const R2SphericalHarmonics& harmonics2);
void SetRealCoefficient(int L, int M1, int M2, RNScalar value);
void SetImaginaryCoefficient(int L, int M1, int M2, RNScalar value);

I/O functions:

int ReadFile(const char *filename);
int WriteFile(const char *filename) const;
int Read(FILE *fp = NULL);
int Write(FILE *fp = NULL) const;
int Print(FILE *fp = NULL) const;

WignerD transform:

int InverseWignerDTransform(double *euler_grid) const;

Utility functions:

int Index(int L, int M1, int M2) const;


Click this to go back to list of GAPS packages.

funk@cs.princeton.edu