MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)     100  HISTORY	; Detailed Current Edit History

   (3)     100  DECLARATIONS		; Declarative Part of Module

   (4)     100  MTH$EXP - Standard Single Precision Floating EX

   (5)     100  MTH$EXP_R4 - Special EXP routine

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   1

1-5                                                                                                                              (1)



                                     0000   100 	.TITLE	MTH$EXP		; Single Precision Floating Exponrntial Function

                                     0000   200 				; (EXP)

                                     0000   300 	.IDENT /1-5/		; File: MTHEXP.MAR

                                     0000   400 ;

                                     0000   500 ; Copyright (C) 1977

                                     0000   600 ; Digital Equipment Corporation, Maynard, Massachusetts 01754

                                     0000   700 ;

                                     0000   800 ; This software is furnished under a license for use only on a single

                                     0000   900 ; computer  system  and  may be copied only with the inclusion of the

                                     0000  1000 ; above copyright notice. This software, or any other copies thereof,

                                     0000  1100 ; may not be provided or otherwise made available to any other person

                                     0000  1200 ; except for use on such system and to one who agree to these license 

                                     0000  1300 ; terms.  Title to  and  ownership of the software shall at all times 

                                     0000  1400 ; remain in DEC.

                                     0000  1500 ;

                                     0000  1600 ; The information in the software is subject to change without notice

                                     0000  1700 ; and should  not  be construed  as a commitment by Digital Equipment 

                                     0000  1800 ; Corporation.

                                     0000  1900 ;

                                     0000  2000 ; DEC assumes  no  responsibility  for the use or  reliability of its

                                     0000  2100 ; software on equipment which is not supplied by DEC.

                                     0000  2200 ;

                                     0000  2300 ;

                                     0000  2400 ; FACILITY: MATH LIBRARY

                                     0000  2500 ;++

                                     0000  2600 ; ABSTRACT:

                                     0000  2700 ;

                                     0000  2800 ;	MTH$EXP is a function which returns the single floating point

                                     0000  2900 ; exponential of its single precision floating point argument.

                                     0000  3000 ; The call is standard call-by-reference.

                                     0000  3100 ;

                                     0000  3200 ;--

                                     0000  3300 ;

                                     0000  3400 ; VERSION: 0

                                     0000  3500 ;

                                     0000  3600 ; HISTORY:

                                     0000  3700 ; AUTHOR:

                                     0000  3800 ;	Peter Yuo, 15-Oct-76: Version 0

                                     0000  3900 ;

                                     0000  4000 ; MODIFIED BY:

                                     0000  4100 ;

                                     0000  4200 ; 0-1	Peter Yuo, 22-May-77

                                     0000  4300 ;

                                     0000  4400 ;

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   2

1-5             HISTORY ; Detailed Current Edit History                                                                          (2)



                                     0000   100 	.SBTTL	HISTORY	; Detailed Current Edit History

                                     0000   200 

                                     0000   300 ; Edit History for Version 0 of MTH$EXPDEXP

                                     0000   400 ;

                                     0000   500 ; 0-1	Code saving after code review March 1977

                                     0000   600 ; 0-2	Finish error handling 10-June-1977

                                     0000   700 ; 0-4	change RET to RSB in ERROR; fix undefined GLOBLs

                                     0000   800 ; 0-5	add $SRMDEF macro

                                     0000   900 ; 0-6	MTH$$ERROR changed to MTH$$SIGNAL.

                                     0000  1000 ;	MTH$_... changed to MTH__....

                                     0000  1100 ;	Changed error handling mechanism. Put error result in R0 before 

                                     0000  1200 ;	calling MTH$$SIGNAL in order to allow user modify error result.

                                     0000  1300 ; 0-7	Declared PSECTs and use SF$W_SAVE_PSW.  TNH 20-Dec-77

                                     0000  1400 ; 0-8	Invoke $SFDEF.  TNH 20-Dec-77

                                     0000  1500 ;

                                     0000  1600 ; Edit History for Version 1 of MTH$EXP

                                     0000  1700 ;

                                     0000  1800 ; 1-1	Split single and double precision routines into two parts;

                                     0000  1900 ;	Used more accurate and faster algorithms provided by M. Payne.

                                     0000  2000 ;	JMT 23-Jan-78

                                     0000  2100 ; 1-3	Fixed bug causing unexpected integer overflow.  JMT 24-MAR-78

                                     0000  2200 ; 1-4	Fixes for better accuracy.  Use ADDD.   JMT 11-Apr-78

                                     0000  2300 ; 1-5	Move .ENTRY mask definition to module header.  TNH 14-Aug-78

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   3

1-5             DECLARATIONS  ; Declarative Part of Module                                                                       (3)



                                     0000   100 	.SBTTL	DECLARATIONS		; Declarative Part of Module

                                     0000   200 

                                     0000   300 ;

                                     0000   400 ; INCLUDE FILES:	OTSPARAMS.MAR

                                     0000   500 ;

                                     0000   600 ; EXTERNAL SYMBOLS:	MTH$FLAG_JACKET

                                     0000   700 ;

                                     0000   800 	.DSABL	GBL			; Declare all EXTRNs explicitly

                                     0000   900 	.EXTRN	MTH$$SIGNAL		; SIGNAL SEVERE error

                                     0000  1000 	.EXTRN	MTH$$JACKET_TST		; Test to see if called with CALL or JSB

                                     0000  1100 ; EQUATED SYMBOLS:

                                     0000  1200 

                           0000401C  0000  1233 	ACMASK	= ^M<IV, R2, R3, R4>	; register saving mask and IV enable

                           00000029  0000  1300 	X_51	=	^O51		; Extension for operand in EMODF

                                     0000  1400 ;

                                     0000  1500 ; MACROS:

                                     0000  1600 	$SFDEF				; define SF$ (stack frame) symbols

                                     0000  1700 ;

                                     0000  1800 ; PSECT DECLARATIONS:

                                     0000  1900 

                                 00000000  2000 	.PSECT	MTH$CODE	PIC,SHR,LONG,EXE,NOWRT

                                     0000  2100 					; program section for math routines

                                     0000  2200 ;

                                     0000  2300 ; OWN STORAGE:	none

                                     0000  2400 ;

                                     0000  2500 ; CONSTANTS:

                                     0000  2600 

                                     0000  2700 ;

                                     0000  2800 ; Table to be used for scaling. These constants here have been

                                     0000  2900 ; verified by M. Payne using her program ROOT16 on PDP-10.

                                     0000  3000 ;

                                     0000  3100 TABLE:

                          0000 4080  0000  3200 	.WORD	^O040200,0		; 2**(0/16) = 1.0

                          AAC3 4085  0004  3300 	.WORD	^O040205,^O125303	; 2**(1/16)

                          95C2 408B  0008  3400 	.WORD	^O040213,^O112702	; 2**(2/16)

                          C3D3 4091  000C  3500 	.WORD	^O040221,^O141723	; 2**(3/16)

                          37F0 4098  0010  3600 	.WORD	^O040230,^O033760	; 2**(4/16)

                          F532 409E  0014  3700 	.WORD	^O040236,^O172462	; 2**(5/16)

                          FED7 40A5  0018  3800 	.WORD	^O040245,^O177327	; 2**(6/16)

                          583F 40AD  001C  3900 	.WORD	^O040255,^O054077	; 2**(7/16)

                          04F3 40B5  0020  4000 	.WORD	^O040265,^O002363	; 2**(8/16)

                          08A4 40BD  0024  4100 	.WORD	^O040275,^O004244	; 2**(9/16)

                          672A 40C5  0028  4200 	.WORD	^O040305,^O063452	; 2**(10/16)

                          248C 40CE  002C  4300 	.WORD	^O040316,^O022214	; 2**(11/16)

                          44FD 40D7  0030  4400 	.WORD	^O040327,^O042375	; 2**(12/16)

                          CCDF 40E0  0034  4500 	.WORD	^O040340,^O146337	; 2**(13/16)

                          C0C7 40EA  0038  4600 	.WORD	^O040352,^O140307	; 2**(14/16)

                          257D 40F5  003C  4700 	.WORD	^O040365,^O022575	; 2**(15/16)

                                     0040  4800 ;

                                     0040  4900 ; Table to be used for scaling. These constants here have been

                                     0040  5000 ; verified by M. Payne using her program ROOT16 on PDP-10.

                                     0040  5100 ;

                          0000 4080  0040  5200 TABDB:	.WORD	^O040200,0		; 2**(0/16) = 1.0

                          0000 0000  0044  5300 	.WORD	0,0

                          AAC3 4085  0048  5400 	.WORD	^O040205,^O125303	; 2**(1/16)

                          487B 67CC  004C  5500 	.WORD	^O063714,^O044173

                          95C1 408B  0050  5600 	.WORD	^O040213,^O112701	; 2**(2/16)

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   4

1-5             DECLARATIONS  ; Declarative Part of Module                                                                       (3)



                          8BD7 E3EA  0054  5700 	.WORD	^O161752,^O105727

                          C3D3 4091  0058  5800 	.WORD	^O040221,^O141723	; 2**(3/16)

                          11C3 73AB  005C  5900 	.WORD	^O071653,^O010703

                          37F0 4098  0060  6000 	.WORD	^O040230,^O033760	; 2**(4/16)

                          B8A9 518D  0064  6100 	.WORD	^O050615,^O134251

                          F532 409E  0068  6200 	.WORD	^O040236,^O172462	; 2**(5/16)

                          A112 6091  006C  6300 	.WORD	^O060221,^O120422

                          FED6 40A5  0070  6400 	.WORD	^O040245,^O177326	; 2**(6/16)

                          5139 A9B1  0074  6500 	.WORD	^O124661,^O050471

                          583E 40AD  0078  6600 	.WORD	^O040255,^O054076	; 2**(7/16)

                          A14B EA42  007C  6700 	.WORD	^O165102,^O120513

                          04F3 40B5  0080  6800 	.WORD	^O040265,^O002363	; 2**(8/16)

                          DE65 33F9  0084  6900 	.WORD	^O031771,^O157145

                          08A3 40BD  0088  7000 	.WORD	^O040275,^O004243	; 2**(9/16)

                          0C37 9F58  008C  7100 	.WORD	^O117530,^O006067

                          672A 40C5  0090  7200 	.WORD	^O040305,^O063452	; 2**(10/16)

                          06DB 1155  0094  7300 	.WORD	^O010525,^O003333

                          248C 40CE  0098  7400 	.WORD	^O040316,^O022214	; 2**(11/16)

                          8481 151F  009C  7500 	.WORD	^O012437,^O102201

                          44FC 40D7  00A0  7600 	.WORD	^O040327,^O042374	; 2**(12/16)

                          9D6B CAD6  00A4  7700 	.WORD	^O145326,^O116553

                          CCDE 40E0  00A8  7800 	.WORD	^O040340,^O146336	; 2**(13/16)

                          94E1 EC2A  00AC  7900 	.WORD	^O166052,^O112341

                          C0C6 40EA  00B0  8000 	.WORD	^O040352,^O140306	; 2**(14/16)

                          2439 E7DD  00B4  8100 	.WORD	^O163735,^O022071

                          257D 40F5  00B8  8200 	.WORD	^O040365,^O022575	; 2**(15/16)

                          86CC 1524  00BC  8300 	.WORD	^O012444,^O103314

                                     00C0  8400 ;

                                     00C0  8500 ; Polynomial coefficient tables for POLYF.

                                     00C0  8600 ;

                                     00C0  8700 EXPTAB:

                          9924 351D  00C0  8800 	.WORD	^O032435,^O114444	;

                          5F1B 3863  00C4  8900 	.WORD	^O034143,^O057433	;

                          FDF0 3B75  00C8  9000 	.WORD	^O035565,^O176760	;

                          7217 3E31  00CC  9100 	.WORD	^O037061,^O071027	;

                          0000 0000  00D0  9200 	.WORD	0,0			; 0.0

                           00000005  00D4  9300 EXPLEN = <.-EXPTAB>/4

                                     00D4  9400 

                                     00D4  9500 EXPTB1:

                          B333 3E2A  00D4  9600 	.WORD	^O037052,^O131463	;

                          B555 3F2A  00D8  9700 	.WORD	^O037452,^O132525	;

                          FFFF 3FFF  00DC  9800 	.WORD	^O037777,^O177777	;

                          FFFF 407F  00E0  9900 	.WORD	^O040177,^O177777	;

                          0000 4080  00E4 10000 	.WORD	^O040200,0		; 1.00000000254251

                           00000005  00E8 10100 EXPLN1 = <.-EXPTB1>/4

                                     00E8 10200 

                                     00E8 10300 F_16LOG2_E:				; LOG2(E) * 16

                          AA3B 42B8  00E8 10400 	.WORD	^O041270,^O125073

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   5

1-5             MTH$EXP - Standard Single Precision Floating EX                                                                  (4)



                                     00EC   100 	.SBTTL	MTH$EXP - Standard Single Precision Floating EXP

                                     00EC   200 

                                     00EC   300 

                                     00EC   400 ;++

                                     00EC   500 ; FUNCTIONAL DESCRIPTION:

                                     00EC   600 ;

                                     00EC   700 ; EXP  - single precision floating point function

                                     00EC   800 ;

                                     00EC   900 ; EXP(X) is computed using Chebyshev approximation 1001: about

                                     00EC  1000 ; 27 bit accuracy.

                                     00EC  1100 ;

                                     00EC  1200 ;

                                     00EC  1300 ; CALLING SEQUENCE:

                                     00EC  1400 ;

                                     00EC  1500 ;	Exponential.wf.v = MTH$EXP(x.rf.r)

                                     00EC  1600 ;

                                     00EC  1700 ; INPUT PARAMETERS:

                                     00EC  1800 

                           00000004  00EC  1900 	LONG = 4			; define longword multiplier

                           00000004  00EC  2000 	x = 1 * LONG			; Contents of x is the argument

                                     00EC  2100 

                                     00EC  2200 ; IMPLICIT INPUTS:	none

                                     00EC  2300 ;

                                     00EC  2400 ; OUTPUT PARAMETERS:

                                     00EC  2500 ;

                                     00EC  2600 ;	VALUE:	floating exponential of the argument

                                     00EC  2700 ;

                                     00EC  2800 ; IMPLICIT OUTPUTS:	none

                                     00EC  2900 ;

                                     00EC  3000 ; SIDE EFFECTS:

                                     00EC  3100 ;

                                     00EC  3200 ; Signals: MTH$_FLOOVEMAT if X > 88.028 with reserved operand in R0/R1 (copied

                                     00EC  3300 ; to the signal mechanism vector CHF$L_MCH_R0/R1 by LIB$SIGNAL).

                                     00EC  3400 ; Associated message is: "FLOATING OVERFLOW IN MATH LIBRARY". Result is reserved

                                     00EC  3500 ; operand -0.0 unless a user supplied (or any) error handler changes CHF$L_MCH_R0/R1

                                     00EC  3600 ;	MTH$_FLOUNDMAT if X =< -89.416 and caller has hardware enable set.

                                     00EC  3700 ; The result is set to +0.0. Associated message is: "FLOATING UNDERFLOW

                                     00EC  3800 ; IN MATH LIBRARY"

                                     00EC  3900 ;

                                     00EC  4000 ; NOTE: This procedure disables floating point underflow, enable integer

                                     00EC  4100 ; overflow, causes no floating overflow or other arithmetic traps, and

                                     00EC  4200 ; preserves enables across the call.

                                     00EC  4300 ;

                                     00EC  4400 ;---

                                     00EC  4500 

                                     00EC  4600 

                               401C' 00EC  4700 	.ENTRY	MTH$EXP, ACMASK	; standard call-by-reference entry

                                     00EE  4800 					; disable DV (and FU), enable IV

                                     00EE  4900 	MTH$FLAG_JACKET			; flag that this is a jacket procedure in

                                     00EE      

            6D       0000'CF     3E  00EE       	MOVAW	W^MTH$$JACKET_HND, (FP)

                                     00F3       					; set handler address to jacket

                                     00F3       					; handler

                                     00F3       

                                     00F3  5000 					; case of an error in special JSB routine

            50         04 BC     50  00F3  5100 	MOVF	@x(AP), R0		; R0 = user's arg

                          01     10  00F7  5200 	BSBB	MTH$EXP_R4		; R0 = special EXP(R0)

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   6

1-5             MTH$EXP - Standard Single Precision Floating EX                                                                  (4)



                                 04  00F9  5300 	RET				; return - result in R0

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   7

1-5             MTH$EXP_R4 - Special EXP routine                                                                                 (5)



                                     00FA   100 	.SBTTL	MTH$EXP_R4 - Special EXP routine

                                     00FA   200 

                                     00FA   300 ; Special EXP - used by the standard, and direct interfaces.

                                     00FA   400 ;

                                     00FA   500 ; CALLING SEQUENCE:

                                     00FA   600 ;	save anything needed in R0:R4

                                     00FA   700 ;	MOVF	...,R0			; input in R0

                                     00FA   800 ;	JSB	MTH$EXP_R4

                                     00FA   900 ;	return with result in R0

                                     00FA  1000 

                                     00FA  1100 ; Note: This routine is written to avoid causing any integer overflows, floating

                                     00FA  1200 ; overflows, or floating underflows or divide by 0 conditions, whether enabled or

                                     00FA  1300 ; not.

                                     00FA  1400 ;

                                     00FA  1500 ; REGISTERS USED:

                                     00FA  1600 ;	R0 - floating argument, then result

                                     00FA  1700 ;	R2 - diddled exponent

                                     00FA  1800 ;	R3 - scratch

                                     00FA  1900 ;	R4 - integer part of X * LOG2(E)* 16

                                     00FA  2000 

                                     00FA  2300 

                                     00FA  2400 MTH$EXP_R4::				; special EXP routine

            50       807F 8F     AB  00FA  2500 OVUND:	BICW3	#^X807F, R0, R2		; Preliminary test for over/underflow

                          52         00FF       

            52       3E00 8F     A3  0100  2600 	SUBW3	#^X3E00, R2, R3		; R3 = 4 + unbiased exponent

                          53         0105       

            53       0580 8F     B1  0106  2700 	CMPW	#^X580, R3		; unsigned compare with 11

                          34     1F  010B  2800 	BLSSU	SMTST			; to more tests if LSSU

                                     010D  2900 					;  else, -4 < unbiased exp < 8

                                     010D  3000 					;  no exceptions in EMODF or POLYF

                                     010D  3100 

            29         D8 AF     54  010D  3200 EVAL:	EMODF	F_16LOG2_E, #X_51, R0, R4, R0

            54            50         0111       

                          50         0113       

                                     0114  3300 					; get X*16*LG2(E) with

                                     0114  3400 					;  integer part in R4 (=I+J)

                                     0114  3500 					;  fraction = W in R0/R1

            04            50     55  0114  3600 	POLYF	R0, #EXPLEN-1, EXPTAB	; evaluate polynomial ap-

                       A7 AF         0117       

                                     0119  3700 					;  proximation with POLY.

                                     0119  3800 					;  5 coefficients.

            54   FFFFFFF0 8F     CB  0119  3900 	BICL3	#-16, R4, R2		; R2 = J

                          52         0120       

            50       FEDA CF42   44  0121  4000 	MULF	TABLE[R2], R0		; else MUL by 2**(J/16)

            50       FF14 CF42   60  0127  4100 	ADDD	TABDB[R2], R0		; add in DP 2**(J/16)

            50            50     76  012D  4200 	CVTDF	R0, R0

            54            0F     CA  0130  4300 	BICL	#15, R4			; R4 = I

                          0B     13  0133  4400 	BEQL	RETURN			; if I=0, then done

            50            6044   7E  0135  4500 	MOVAQ	(R0)[R4], R0		; shift I to exp position and

                                     0139  4600 					; MUL by 2**I by exponent addition

       007F 8F            50     B1  0139  4700 	CMPW	R0, #^X7F		; test for over/underflow

                          38     15  013E  4800 	BLEQ	EXCEPT			; see what exception is if neg or = 0

                                 05  0140  4900 RETURN:	RSB				; otherwise return result in R0

                                     0141  5000 

                                     0141  5100 SMTST:

                          11     19  0141  5200 	BLSS	TOOBIG			; exception if exp+4 > 11

       3400 8F            52     B1  0143  5300 	CMPW	R2, #^X3400		; eliminate underflow if exp <-24

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   8

1-5             MTH$EXP_R4 - Special EXP routine                                                                                 (5)



                          06     19  0148  5400 	BLSS	ONE			; bypass if E**ARG = 1

            04            50     55  014A  5500 	POLYF	R0, #EXPLN1-1, EXPTB1	; evaluate alternate polynomial

                       85 AF         014D       

                                 05  014F  5600 	RSB

                                     0150  5700 

            50            08     50  0150  5800 ONE:	MOVF	S^#1.0, R0		; E**ARG =1; store it

                                 05  0153  5900 	RSB				; and return

                                     0154  6000 

                                     0154  6100 

                                     0154  6200 ;

                                     0154  6300 ; Handlers for software detected over/underflow conditions follow

                                     0154  6400 ;

                          50     53  0154  6500 TOOBIG:	TSTF	R0			; if big ARG > 0 goto OVERFLOW

                          24     18  0156  6600 	BGEQ	OVER

                                     0158  6700 ;

                                     0158  6800 ; Underflow; if user has FU set, signal error.  Always return 0.0

                                     0158  6900 ;

                                     0158  7000 UNDER:

                          52     DC  0158  7100 	MOVPSL	R2			; R2 = user's or jacket routine's PSL

       0000'CF            00     FB  015A  7200 	CALLS	#0, W^MTH$$JACKET_TST	; R0 = TRUE if JSB from jacket routine

            04            50     E9  015F  7300 	BLBC	R0, 10$			; branch if user did JSB

            52         04 AD     3C  0162  7400 	MOVZWL	SF$W_SAVE_PSW(FP), R2	; get user PSL saved by CALL

                          50     D4  0166  7500 10$:	CLRL	R0			; R0 = result. LIB$SIGNAL will save in

                                     0168  7600 					; CHF$L_MCH_R0/R1 so any handler can fixup

            52            06     E1  0168  7700 	BBC	#6, R2, 20$		; has user enabled floating underflow?

                          0B         016B       

                          6E     DD  016C  7800 	PUSHL	(SP)			; yes, return PC from special routine

            7E         59 8F     9A  016E  7900 	MOVZBL	#MTH__FLOUNDMAT, -(SP)	; trap code for hardware floating underflow

                                     0172  8000 					; convert to MTH$_FLOUNDMAT (32-bit VAX-11 

                                     0172  8100 					; exception code)

       0000'CF            02     FB  0172  8200 	CALLS	#2, W^MTH$$SIGNAL	; signal (condition, PC)

                                 05  0177  8300 20$:	RSB				; return

                                     0178  8400 

                                     0178  8500 EXCEPT:

                          54     D5  0178  8600 	TSTL	R4			; test sign of I; if I < 0

                          DC     19  017A  8700 	BLSS	UNDER			; go to underflow handler

                                     017C  8800 ;

                                     017C  8900 ; Signal floating overflow, return reserved operand, -0.0

                                     017C  9000 ;

                                     017C  9100 OVER:					; else process for overflow

                          6E     DD  017C  9200 	PUSHL	(SP)			; return PC from special routine

            7E         58 8F     9A  017E  9300 	MOVZBL	#MTH__FLOOVEMAT, -(SP)	; hardware floating overflow

            01            0F     79  0182  9400 	ASHQ	#15, #1, R0		; R0 = result = reserved operand

                          50         0185       

                                     0186  9500 					; -0.0. R0 will be copied to

                                     0186  9600 					; signal mechanism vector (CHF$L_MCH_R0/R1)

                                     0186  9700 					; so can be fixed up by any error

                                     0186  9800 					; handler

       0000'CF            02     FB  0186  9900 	CALLS	#2, W^MTH$$SIGNAL	; signal (condition, PC)

                                 05  018B 10000 	RSB				; return - R0 restoredd from CHF$L_MCH_R0/R1

                                     018C 10100 

                                     018C 10200 

                                     018C 10300 	.END

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (5)



ACMASK         = 0000401C            SF$V_FU        = 00000006            

BIT...         = 00000010            SF$V_IV        = 00000005            

EVAL             0000010D R     03   SF$V_N         = 00000003            

EXCEPT           00000178 R     03   SF$V_SAVE_MASK = 00000000            

EXPLEN         = 00000005            SF$V_STACKOFFS = 0000000E            

EXPLN1         = 00000005            SF$V_TBIT      = 00000004            

EXPTAB           000000C0 R     03   SF$V_V         = 00000001            

EXPTB1           000000D4 R     03   SF$V_Z         = 00000002            

FOR$K_ERR_PREFX= 00000018            SF$W_SAVE_MASK   00000006            

F_16LOG2_E       000000E8 R     03   SF$W_SAVE_PSW    00000004            

GBL...         = 00000000            SMTST            00000141 R     03   

LONG           = 00000004            TABDB            00000040 R     03   

MTH$$JACKET_HND  ********   X   03   TABLE            00000000 R     03   

MTH$$JACKET_TST  ********   X   01   TOOBIG           00000154 R     03   

MTH$$SIGNAL      ********   X   01   UNDER            00000158 R     03   

MTH$EXP          000000EC RG    03   X              = 00000004            

MTH$EXP_R4       000000FA RG    03   X_51           = 00000029            

MTH$K_ERR_PREFX= 00000016            

MTH__FLOOVEMAT = 00000058            

MTH__FLOUNDMAT = 00000059            

MTH__INVARG    = 00000051            

MTH__LOGZERNEG = 00000053            

MTH__SINSIGLOS = 00000057            

MTH__SQUROONEG = 00000054            

MTH__UNDEXP    = 00000052            

MTH__WRONUMARG = 00000050            

ONE              00000150 R     03   

OVER             0000017C R     03   

OVUND            000000FA R     03   

RETURN           00000140 R     03   

SF$A_HANDLER     00000000            

SF$L_SAVE_AP     00000008            

SF$L_SAVE_FP     0000000C            

SF$L_SAVE_PC     00000010            

SF$L_SAVE_REGS   00000014            

SF$M_C         = 00000001            

SF$M_DV        = 00000080            

SF$M_FU        = 00000040            

SF$M_IV        = 00000020            

SF$M_N         = 00000008            

SF$M_TBIT      = 00000010            

SF$M_V         = 00000002            

SF$M_Z         = 00000004            

SF$S_C         = 00000001            

SF$S_CALLS     = 00000001            

SF$S_DV        = 00000001            

SF$S_FU        = 00000001            

SF$S_IV        = 00000001            

SF$S_N         = 00000001            

SF$S_SAVE_MASK = 0000000C            

SF$S_STACKOFFS = 00000002            

SF$S_TBIT      = 00000001            

SF$S_V         = 00000001            

SF$S_Z         = 00000001            

SF$V_C         = 00000000            

SF$V_CALLS     = 0000000D            

SF$V_DV        = 00000007            

MTH$EXP         ; Single Precision Floating Exponrntial Functio  21-AUG-1978 19:05:49   VAX-11 MACRO X0.3-11               Page  10

PROGRAM SECTION SYNOPSIS                                                                                                         (5)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            00000018      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

MTH$CODE         0000018C      03       PIC   USR   CON   REL   LCL   SHR   EXE   RD  NOWRT LONG  





THERE WERE NO ERRORS OR WARNINGS.

25428. BYTES LEFT IN FREE MEMORY POOL.

140. BYTES OF RECLAIMED MEMORY.

OBJ$:MTHEXP,LIS$:MTHEXP/-SP=LIB$:S/ML,SRC$:P,MTHEXP

5 MLB DIR RDS - 106 GETS TO DEFINE 8 MACROS. 8 INTER. FILE WRITES. 

