Data update
This commit is contained in:
parent
8e4e15fa56
commit
72eb4943cb
1853 changed files with 35514 additions and 9441 deletions
|
|
@ -1,23 +1,38 @@
|
|||
/*REXX program demonstrates how to support some math functions for complex numbers. */
|
||||
x = '(5,3i)' /*define X ─── can use I i J or j */
|
||||
y = "( .5, 6j)" /*define Y " " " " " " " */
|
||||
include Settings
|
||||
|
||||
say ' addition: ' x " + " y ' = ' Cadd(x, y)
|
||||
say ' subtraction: ' x " - " y ' = ' Csub(x, y)
|
||||
say 'multiplication: ' x " * " y ' = ' Cmul(x, y)
|
||||
say ' division: ' x " ÷ " y ' = ' Cdiv(x, y)
|
||||
say ' inverse: ' x " = " Cinv(x, y)
|
||||
say ' conjugate of: ' x " = " Conj(x, y)
|
||||
say ' negation of: ' x " = " Cneg(x, y)
|
||||
exit /*stick a fork in it, we're all done. */
|
||||
/*──────────────────────────────────────────────────────────────────────────────────────*/
|
||||
Conj: procedure; parse arg a ',' b,c ',' d; call C#; return C$( a , -b )
|
||||
Cadd: procedure; parse arg a ',' b,c ',' d; call C#; return C$( a+c , b+d )
|
||||
Csub: procedure; parse arg a ',' b,c ',' d; call C#; return C$( a-c , b-d )
|
||||
Cmul: procedure; parse arg a ',' b,c ',' d; call C#; return C$( ac-bd , bc+ad)
|
||||
Cdiv: procedure; parse arg a ',' b,c ',' d; call C#; return C$((ac+bd)/s, (bc-ad)/s)
|
||||
Cinv: return Cdiv(1, arg(1))
|
||||
Cneg: return Cmul(arg(1), -1)
|
||||
C_: return word(translate(arg(1), , '{[(JjIi)]}') 0, 1) /*get # or 0*/
|
||||
C#: a=C_(a); b=C_(b); c=C_(c); d=C_(d); ac=a*c; ad=a*d; bc=b*c; bd=b*d;s=c*c+d*d; return
|
||||
C$: parse arg r,c; _='['r; if c\=0 then _=_","c'j'; return _"]" /*uses j */
|
||||
say version; say 'Arithmetic numbers'; say
|
||||
numeric digits 9
|
||||
divi. = 0; a = 0; c = 0
|
||||
do i = 1
|
||||
/* Is the number arithmetic? */
|
||||
if Arithmetic(i) then do
|
||||
a = a+1
|
||||
/* Is the number composite? */
|
||||
if divi.0 > 2 then
|
||||
c = c+1
|
||||
/* Output control */
|
||||
if a <= 100 then do
|
||||
if a = 1 then
|
||||
say 'First 100 arithmetic numbers are'
|
||||
call Charout ,Right(i,4)
|
||||
if a//10 = 0 then
|
||||
say
|
||||
if a = 100 then
|
||||
say
|
||||
end
|
||||
if a = 100 | a = 1000 | a = 10000 | a = 100000 | a = 1000000 then do
|
||||
say 'The' a'th arithmetic number is' i
|
||||
say 'Of the first' a 'numbers' c 'are composite'
|
||||
say
|
||||
end
|
||||
/* Max 1m, higher takes too long */
|
||||
if a = 1000000 then
|
||||
leave
|
||||
end
|
||||
end
|
||||
say Format(Time('e'),,3) 'seconds'
|
||||
exit
|
||||
|
||||
include Numbers
|
||||
include Functions
|
||||
include Abend
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue