1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 #define SAF_ALGTYPE_SCALAR      saf_find_algebraic_scalar()     /* Used to specify fields that obey properties of scalar
                                                                  * algebra. */
 #define SAF_ALGTYPE_VECTOR      saf_find_algebraic_vector()     /* Used, generically, for fields that obey properties of vector
                                                                  * algebra. */
 #define SAF_ALGTYPE_COMPONENT   saf_find_algebraic_component()  /* Used, generically, for any component of a multi-component
                                                                  * field. In many cases, it might be just as well to treat
                                                                  * each component of a multi-component field as a scalar field.
                                                                  * However, this is not entirely mathematically correct. */
 #define SAF_ALGTYPE_TENSOR      saf_find_algebraic_tensor()     /* Used for general, non-symmetric tensor fields */
 #define SAF_ALGTYPE_SYMTENSOR   saf_find_algebraic_symmetric_tensor()   /* Used for general, symmetric tensor fields. */
 #define SAF_ALGTYPE_TUPLE       saf_find_algebraic_tuple()      /* Used to identify a field which evaluates to a /group/ of
                                                                  * otherwise unrelated fields. Typically used in a /State/
                                                                  * field. */
 #define SAF_ALGTYPE_FIELD       saf_find_algebraic_field()      /* This algebraic type is used for fields that are, in reality,
                                                                  * simply /references/ to other fields. These are called
                                                                  * /field/indirections/ or, /indirect/fields. Indirect fields are
                                                                  * used, primarily for two kinds of fields; /inhomogeneous/ fields
                                                                  * and /cross-product/ fields. An inhomogeneous field is
                                                                  * represented as references to pieces of the field over subsets
                                                                  * of its base-space over which each piece *is* homogenous.
                                                                  * Likewise, a cross-product field is used to work around the
                                                                  * fact that SAF does NOT deal with cross product sets in the
                                                                  * base-spaces of fields. Thus, we represent such fields as
                                                                  * references to fields over other base spaces. */
 #define SAF_ALGTYPE_ANY         NULL                            /* Wildcard for find operations. */