ASMB,R,L,C NAM CLOG,6 24998-1X137 REV.2013 791016 ENT CLOG EXT .ZRNT,.ENTP,CABS,ALOG,ATAN2 *********************************************************************** * * * NAME: CLOG * * SOURCE: 24998-18137 * * RELOC: PART OF 24998-12002 * * PGMR: CRG * * * *********************************************************************** * * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * * *********************************************************************** * * COMPLEX LOGARITHM * * CALLING SEQUENCE: Y=CLOG(X) * * JSB CLOG * DEF *+3 * DEF Y * DEF X * * * *********************************************************************** * TDB NOP ABS CLOG-TDB TDBP2 NOP RYTMP BSS 2 ADIX BSS 1 ADIY BSS 1 Y BSS 1 X BSS 1 * CLOG NOP ENTRY POINT JSB .ZRNT DEF LIBX JSB .ENTP GET ADDRESSES DEF Y STA TDBP2 SAVE RETURN ADDR * *********************************************************************** SKP *********************************************************************** * * CALCULATE REAL(Y) = ALOG(CABS(X)) * * CHECK FOR ERROR CONDITION (X = 0) * JSB CABS COMPLEX ABS VALUE DEF *+2 DEF X,I * JSB ALOG JMP LIBX ERROR RTN DST RYTMP SAVE IN RYTMP * *********************************************************************** * * CALCULATE ADDRESSES OF IMAG(X) AND IMAG(Y) * LDA X ADA .2 STA ADIX * LDA Y ADA .2 STA ADIY * *********************************************************************** * * CALCULATE IMAG(Y) = ATAN2(IMAG(X)/REAL(X)) * JSB ATAN2 DEF *+3 DEF ADIX,I IMAG(X) DEF X,I REAL(X) * DST ADIY,I STORE IN IMAG(Y) * *********************************************************************** * * STORE REAL(Y), BUMP TO NORMAL RETURN, AND EXIT * DLD RYTMP DST Y,I * ISZ TDBP2 SET NORMAL RETURN LIBX JMP TDBP2,I RETURN DEF TDB DEC 0 * *********************************************************************** SKP *********************************************************************** * .2 DEC 2 * *********************************************************************** END