Multi-dimensional functions

Class Realfunctionnd

Generic real multi-dimensional function class (real function of a vector of real arguments). Polymorphic input and output is provided for pointers to objects of this class. Polymorphic data format:
function_type
data_for_that_function
The data format depends on the type of function chosen. Names (for identifying the function type) and formats are defined below.

Class: Realfunctionnd_1dproduct

Product of a set of 1D functions of each of the arguments. Name: 1dproduct Data format:
number_of_functions
For each:
   fi
Each fi is a Realfunction1d.

Class: Realfunctionnd_1d

A single 1D function of one of the components. Name: 1d Data format:
f	(Realfunction)
ix	(component of vector to apply function to, base 0)

Class: Realfunctionnd_2d

A single 2D function of two of the components. Name: 2d Data format:
f	(Realfunction2d)
ix iy	(components of vector to apply function to, base 0)

Class: Realfunctionnd_3d

A single 3D function of three of the components. Name: 3d Data format:
f		(Realfunction3d)
ix iy iz	(components of vector to apply function to, base 0)

Class: Realfunctionnd_sum

Sum of several ND functions. Name: sum. Data:
number_of_functions
For each:
   fi
The fi are Realfunctionnds. The dimension space of each fi should be the same.

Class: Realfunctionnd_product

Product of several ND functions. Name: product. Data:
number_of_functions
For each:
   fi
The fi are Realfunctionnds. The dimension space of each fi should be the same.

Class: Realfunctionnd_offset

General ND function offset by a constant amount. Name: offset. Data:
number_of_components
For each:
   r0i
f
f is a Realfunctionnd. The function calculated is f(r-r0). The number of components in r and the dimension space of f must be the same.

Class: Realfunctionnd_map_sep

General ND function with general mappings applied to each argument and to result. Name: separable_map. Data:
number_of_mapping_functions
For each:
   rmapi	(mapping function for coordinate index i)
f			(Realfunctionnd)
fmap			(mapping function for result)
The mapping functions are all Realfunction1ds. The function calculated is fmap{f[r'(r)]} where [r']i=rmapi([r]i). This is a fairly general form, but is particularly useful for changing units or scalings. The number of coordinate mapping functions rmap and the dimension space of f must be the same.

Class: Realfunctionnd_map

General ND function with general mappings applied to arguments and result. Name: map. Data:
number_of_mapping_functions
For each:
   rmapi	(mapping function for coordinate index i)
f			(Realfunctionnd)
fmap			(mapping function for result)
The mapping functions are all Realfunction1ds. The function calculated is fmap{f[r'(r)]} where [r']i=rmapi(r). The number of coordinate mapping functions rmap and the dimension space of f must be the same.