@X @~
~V7 56 2 -5
~D10
~H                    MUSS
~
~
~D10
~H             BSC261
~D10
~MMANCHESTER UNIVERSITY  -  CONFIDENTIAL
~
~
                                                            ISSUE 10~
~V9 -1
~P
~V9 1
~YBSC261
~S~M~OBASIC IMPLEMENTATION MANUAL
~S~M~OSection 26
~S~OSection 26 Mathematical Functions
~S~O1. General Description
~BThis section contains all the BASIC mathematical functions and any
mescellaneous function e.g. random number functions.
~S~O2. Interfaces
~S~O2.1 Section Interfaces Used
~BNone.
~S~O2.2 Section Interface
~
Exported Procedures:~
   RANDOM~
   RND~
   ABS~
   ATN~
   COS~
   EXP~
   FIX~
   INT~
   RND~
   LOG~
   LOG10~
   SGN~
   SIN~
   SQR~
~S~O3. Implementation
~S~O3.1 Outline of Operation
~S~O3.1.1 RANDOM()
~BAdjusts the random number sequence by giving it a different
starting point.
~S~O3.1.2 RND()
~BRandom number generator, algorithm from Knuth.
~BThe remaining functions are mainly dummies, making calls on
the equivalent system functions provided.
~Y
~V9 -1
~P
~D15
~HFLOWCHARTS
~
~
~H                BSC261
~V9 -1
~F
@TITLE BSC26(1,10)
@COL 1S-2R-3R-4R-5F
@B 1
MATHEMATICAL FUNCTIONS
@B 2
MODULE HEADING
@B 3
GLOBAL VARIABLES
@B 4
PROCEDURES IN MODULE:
RANDOM [BSC26.1]
RND [BSC26.2]
EXP [BSC26.3]
LOG [BSC26.3]
SIN [BSC26.4]
COS [BSC26.4]
TAN [BSC26.4]
ATN [BSC26.4]
SQR [BSC26.5]
RPOWER [BSC26.5]
IPOWER [BSC26.5]
POWER [BSC26.5]
@B 5
END
@B 1.1
::MATHEMATICAL FUNCTIONS
@B 2.1
#BSC26/1
MODULE(RAND,RANDOM,RND,
EXP,LOG,LOG10,
SIN,COS,TAN,ATN,
SQR,RPOWER,IPOWER,POWER);
@B 3.1
*GLOBAL 9;
$LO32 RAND;
@B 4.1
LSPEC RANDOM();
LSPEC RND()/$RE;
::LSPEC EXP($RE32)/$RE32;
LSPEC LOG($RE32)/$RE32;
LSPEC LOG10($RE32)/$RE32;
::LSPEC SIN($RE32)/$RE32;
::LSPEC COS($RE32)/$RE32;
::LSPEC TAN($RE32)/$RE32;
LSPEC ATN($RE32)/$RE32;
LSPEC SQR($RE32)/$RE32;
::LSPEC RPOWER($RE32,$RE32)/$RE32;
::LSPEC IPOWER($RE32,$IN32)/$RE32;
::LSPEC POWER($IN32,$IN32,)/$IN;
#BSC26.1
#BSC26.2
#BSC26.3
#BSC26.4
#BSC26.5
@B 5.1
*END
@E

@TITLE BSC26/1(1,10)
@COL 1S-2R-3F
@B 1
EXTERNALLENVIRONMENT
@B 2
?
@B 3
END
@B 1.1
::IMPORTS
@B 2.1
?
@B 3.1
@E

@TITLE BSC26.1(1,10)
@COL 1R
@BOX 1.0
RANDOM
@BOX 1.1
PROC RANDOM;
1+>RAND;
END;
@END
@TITLE BSC26.2(1,10)
@COL 1S-2R-3F
@FLOW 1-2-3
@BOX 1.1
PROC RND;
@BOX 2.1
$LI MOD=%7FFF,INC=1,MULT=3141592621;
RAND*MULT&MOD+INC=>RAND/MOD*MOD->RAND/MOD=>RND;
@BOX 3.1
END;
@END
@TITLE BSC26.3(1,10)
@COL 1S-2R-3R-4R-5F
@B 1
EXPONENTIATION PROCS
@B 2
EXP
@B 3
LOG
@B 4
LOG 10
@B 5
END
@B 1.1
::EXPONENTIATION PROCS
@B 2.1
::SYSTEM EXP
@B 3.1
PROC LOG(X);
LN(X)=>LOG;
END;
@B 4.1
PROC LOG10(X);
LOG(X)=>LOG10;
END;
@B 5.1
::END
@E

@TITLE BSC26.4(1,10)
(1,10)
@COL 1S-2R-3R-4R-5R-6F
@B 1
TRIG FUNCTIONS
@B 2
SIN
@B 3
COS
@B 4
TAN
@B 5
ATN
@B 6
END
@B 1.1
::TRIG FUNCTIONS
@B 2.1
::SYSTEM SIN
@B 3.1
::SYSTEM COS
@B 4.1
::SYSTEM TAN
@B 5.1
PROC ATN(X);
ATAN(X)=>ATN;
END;
@B 6.1
::END
@E

@TITLE BSC26.5(1,10)
@COL 1S-2R-3R-4R-5R-6F
@B 1
POWER FUNCTIONS
@B 2
RPOWER
@B 3
IPOWER
@B 4
POWER
@B 5
SQR
@B 6
END
@B 1.1
::POWER FUNCTIONS
@B 2.1
::SYSTEM RPOWER
@B 3.1
::SYSTEM IPOWER
@B 4.1
::SYSTEM POWER
@B 5.1
PROC SQR(X);
SQRT(X)=>SQR;
END;
::END
@E


