home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload
/
ShartewareOverload.cdr
/
database
/
compound.zip
/
LOG.PRG
< prev
next >
Wrap
Text File
|
1980-01-01
|
1KB
|
40 lines
* PROGRAM --- LOG.PRG
* EXPECTS NUMBERIC VARIABLE, "NUMBER"
* RETURN NUMBERIC VARIABLE, "MLOG"
SET TALK OFF
STORE NUMBER TO TEMP
STORE 0 TO MLOG
* BRANCH FOR NUMBER GREATER THAN 2, AND ZERO OR LESS..
DO CASE
CASE NUMBER <=0
@ 23,0 SAY "ERROR! NUMBER MUST TO GREATER THAN ZERO."
WAIT
RETURN
CASE NUMBER > 2
DO WHILE TEMP > 2
STORE TEMP /2 TO TEMP
STORE MLOG + 0.6931471 TO MLOG
ENDDO
ENDCASE
* CALCULATION OF THE REMAINDER OF THE LOGARITHM
* (TAYLOR SERIES EXPANSION: FOR -1 < X <= 1
* LOG (1+X) = X - X/2 + X/3 - ...+ -X/N
* OR LOG X = SUM -(1-X)/N FOR N= 1 TO INFINITY)
STORE -(TEMP -1) TO TEMP
STORE 1 TO INTERIM
STORE 0 TO POWER
DO WHILE POWER <= 25
STORE POWER + 1 TO POWER
STORE TEMP * INTERIM /1 TO INTERIM
STORE MLOG - INTERIM / POWER TO MLOG
ENDDO
* ROUND OFF DECIMAL PORTION TO 5 PLACES
STORE INT(MLOG) + INT((MLOG - INT(MLOG)) * 100000 + .5)/100000.00000 TO MLOG
RELEASE INTERIM,TEMP,POWER
RETURN