Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Examples

sum.cc

This is an example of how to use the various ARGDEF and RETURN macro definitions to implement a single-valued inverse function in an atomic class.
/*+++
  Identification:  SPARK sum object

  Abstract:        
       Sums two links

  Acceptable input set:  
       a = 2, b = 1
---*/
#ifdef SPARK_PARSER

PORT a  "Summand 1" ;
PORT b  "Summand 2" ;
PORT c  "Sum" ;

EQUATIONS {
        c = a + b ;
}

FUNCTIONS {
        a = sum__a_or_b( c, b ) ;
        b = sum__a_or_b( c, a ) ;
        c = sum__c( a, b ) ;
}

#endif /* SPARK_PARSER */
#include "spark.h"

///////////////////////////////////////////////////////////
EVALUATE( sum__a_or_b )
{
    ARGDEF(0, c);
    ARGDEF(1, b);
    double a_or_b ;

    a_or_b = c - b;
    RETURN( a_or_b ) ;
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
EVALUATE( sum__c )
{
    ARGDEF(0, a);
    ARGDEF(1, b);
    double c;

    c = a + b;
    RETURN( c ) ;
}
///////////////////////////////////////////////////////////


Generated on 5 Nov 2003 for VisualSPARK 2.01