NUMAL Section 4.2.2

BEGIN SECTION : 4.2.2 (December, 1979)

AUTHOR : P.W. HEMKER.

CONTRIBUTOR : F.GROEN.

INSTITUTE : MATHEMATICAL CENTRE.

RECEIVED : 740620.

BRIEF DESCRIPTION :

    TRICUB  COMPUTES  THE  DEFINITE  INTEGRAL  OF A  FUNCTION  OF  TWO
    VARIABLES OVER A TRIANGULAR DOMAIN.

KEYWORDS :

    INTEGRATION,
    QUADRATURE,
    MOREDIMENSIONAL QUADRATURE,
    CUBATURE,
    DEFINITE INTEGRAL.

CALLING SEQUENCE :

    THE HEADING OF THE PROCEDURE READS :

    "REAL" "PROCEDURE" TRICUB ( XI, YI, XJ, YJ, XK, YK, F, RE, AE );
    "VALUE" XI, YI, XJ, YJ, XK, YK, RE, AE;
    "REAL"  XI, YI, XJ, YJ, XK, YK, RE, AE;
    "REAL" "PROCEDURE" F;
    "CODE" 32075;

    TRICUB := THE  COMPUTED  VALUE OF THE  DEFINITE  INTEGRAL  OF THE
              FUNCTION  F ( X, Y ) OVER THE  TRIANGULAR DOMAIN T WITH
              VERTICES ( XI, YI ), ( XJ, YJ ) AND ( XK, YK ).

    THE MEANING OF THE FORMAL PARAMETERS IS :
    XI, YI: <ARITHMETIC EXPRESSION>;
            ENTRY : THE  COORDINATES  OF  THE  FIRST  VERTEX  OF  THE
            TRIANGULAR DOMAIN OF INTEGRATION;
    XJ, YJ: <ARITHMETIC EXPRESSION>;
            ENTRY : THE  COORDINATES  OF  THE  SECOND  VERTEX  OF THE
            TRIANGULAR DOMAIN OF INTEGRATION;
    XK, YK: <ARITHMETIC EXPRESSION>;
            ENTRY : THE  COORDINATES  OF  THE  THIRD  VERTEX  OF  THE
            TRIANGULAR DOMAIN OF INTEGRATION;
            REMARK: THE ALGORITHM IS SYMMETRICAL IN THE  VERTICES; THIS
            IMPLIES THAT THE RESULT OF THE PROCEDURE (ON ALL COUNTS) IS
            INVARIANT FOR ANY PERMUTATION OF THE VERTICES.
    F :     <PROCEDURE IDENTIFIER>;
            THE HEADING OF THIS PROCEDURE READS:
            "REAL" "PROCEDURE" F ( X, Y ); "REAL" X, Y;
            THIS PROCEDURE DEFINES THE INTEGRAND;
    AE, RE: <ARITHMETIC EXPRESSION>;
            ENTRY: THE REQUIRED ABSOLUTE AND RELATIVE ERROR
            RESPECTIVELY. ONE SHOULD TAKE FOR "AE" AND "RE"
            VALUES WHICH ARE GREATER THAN THE ABSOLUTE AND
            RELATIVE ERROR IN THE COMPUTATION OF THE INTEGRAND F.

PROCEDURES USED : NONE.

REQUIRED CENTRAL MEMORY :

    THE PROCESS IS PROGRAMMED  RECURSIVELY. AT EACH  RECURSION LEVEL 43
    REAL  NUMBERS ARE USED. HOWEVER, FOR ANY  PROPERLY CHOSEN VALUES OF
    RE AND AE THE RECURSION DEPTH WILL NOT EXCEED THE NUMBER OF BITS IN
    A REAL'S MANTISSA.

RUNNING TIME : DEPENDS STRONGLY ON THE INTEGRAL TO COMPUTE.

METHOD AND PERFORMANCE :

    A NESTED SEQUENCE OF CUBATURE RULES OF ORDER 2, 3, 4 AND 5
    IS APPLIED. IF THE DIFFERENCE BETWEEN THE RESULT WITH THE
    4-TH DEGREE RULE AND THE RESULT WITH THE 5-TH DEGREE RULE
    IS TOO LARGE, THEN THE TRIANGLE IS DIVIDED INTO FOUR CONGRUENT
    TRIANGLES. THIS PROCESS IS APPLIED RECURSIVELY IN ORDER TO
    OBTAIN AN ADAPTIVE CUBATURE ALGORITHM.

REFERENCES :

    [1].P.W.HEMKER,
        A SEQUENCE OF NESTED CUBATURE RULES,
        MATH.CENTRE, AMSTERDAM, REPORT NW 3/73.

EXAMPLE OF USE:

    THE FOLLOWING PROGRAM EVALUATES THE INTEGRAL OF
    F ( X, Y ) = COS ( X ) * COS ( Y )  OVER THE TRIANGLE T WITH
    VERTICES  ( 0, 0 ), ( O, PI/2 ) AND  ( PI/2, PI/2 ).
    ON EACH LINE ARE LISTED :
        A: THE REQUIRED RELATIVE AND ABSOLUTE PRECISION;
        B: THE COMPUTED VALUE OF THE INTEGRAL;
        C: THE NUMBER OF CALLS OF THE FUNCTION F,

    "BEGIN"
        "INTEGER" N,C,I,K; "REAL" PI,ACC,R,S;
        "REAL" "PROCEDURE" E(X,Y); "REAL" X,Y;
        "BEGIN" C:= C+1;
               "IF" C> 20000 "THEN" "GOTO" CC;
               E:= COS(X) * COS(Y);
        "END" E;

        PI:= 3.14159265359;
        "FOR" ACC:= "-1,"-2,"-3,"-4,"-5,"-6,"-7,"-8,"-9,"-10,"-11 "DO"
        "BEGIN" C:=0; OUTPUT(61,"("+.D"+ZD,2B,+.14D"+2ZD,2B,10ZD,/")",
                  ACC, TRICUB(0,0,0,PI/2,PI/2,PI/2,E,ACC,ACC) ,C);
        "END";
        CC: OUTPUT(61,"("*")");
    "END"

    RESULTS:

    +.1" +0  +.50063973801970"  +0          7
    +.1" -1  +.50063973801970"  +0          7
    +.1" -2  +.50063973801970"  +0          7
    +.1" -3  +.49999110261504"  +0         10
    +.1" -4  +.49999848959226"  +0         13
    +.1" -5  +.49999848959226"  +0         13
    +.1" -6  +.49999997378240"  +0         43
    +.1" -7  +.49999999209792"  +0        133
    +.1" -8  +.49999999893172"  +0        313
    +.1" -9  +.49999999985571"  +0        733
    +.1"-10  +.49999999998692"  +0       1723

SOURCE TEXT(S):
"CODE" 32075;