Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

$%CPOWER

Draft MDC Standard

2 MATH Library
2.25 CPOWER

CPOWER(Z,N,PREC) ;
	New AR,NIM,NRE,PHI,PI,R,RHO,TH,ZIM,ZRE
	;
	Set PREC=$Get(PREC,11)
	Set ZRE=+Z,ZIM=+$Piece(Z,"%",2)
	Set NRE=+N,NIM=+$Piece(N,"%",2)
	If 'ZRE,'ZIM,'NRE,'NIM Set $Ecode=",M28,"
	;
	If 'ZRE,'ZIM Quit "0%0"
	;
	Set PI=$%PI^MATH()
	Set R=$%SQRT^MATH(ZRE*ZRE+(ZIM*ZIM),PREC)
	;
	If ZRE Set TH=$%ARCTAN^MATH(ZIM/ZRE,PREC)
	Else  Set TH=$Select(ZIM>0:PI/2,1:-PI/2)
	;
	Set RHO=$%LOG^MATH(R,PREC)
	Set AR=$%EXP^MATH(RHO*NRE-(TH*NIM),PREC)
	Set PHI=RHO*NIM+(NRE*TH)
	Quit AR*$%COS^MATH(PHI,PREC)_"%"_(AR*$%SIN^MATH(PHI,PREC))
Button for 1977 Button for 1984 Button for 1990 Button for 1995 Button for MDC Button for notes Button for examples

Copyright © Standard Documents; 1977-2024 MUMPS Development Committee;
Copyright © Examples: 1995-2024 Ed de Moel;
Copyright © Annotations: 2003-2008 Jacquard Systems Research
Copyright © Annotations: 2008-2024 Ed de Moel.

Some specifications are "approved for inclusion in a future standard". Note that the MUMPS Development Committee cannot guarantee that such future standards will indeed be published.

This page most recently updated on 16-Nov-2023, 16:50:06.

For comments, contact Ed de Moel (demoel@jacquardsystems.com)