Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
71
Task/Arithmetic-Complex/FutureBasic/arithmetic-complex.basic
Normal file
71
Task/Arithmetic-Complex/FutureBasic/arithmetic-complex.basic
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
//
|
||||
// Arithmetic/Complex
|
||||
// Using FutureBasic 7.0.34
|
||||
// August 2025, R.W
|
||||
|
||||
include "Tlbx complex.incl"
|
||||
// through this include file, FB supports the following
|
||||
// double complex functions (as of August 2025).
|
||||
// Float and long double complex might be
|
||||
// available in later versions
|
||||
|
||||
//fn creal, cimag, cabs, carg, conj, cproj
|
||||
//fn csqrt, cexp, clog, cpow
|
||||
//fn csin, ccos, ctan
|
||||
//fn casin, cacos, catan
|
||||
//fn csinh, ccosh, ctanh
|
||||
//fn casinh,cacosh,catanh
|
||||
|
||||
// Below is redefining "I" to Cj since I don't want to lose the
|
||||
// ability to use "i" as my favorite FOR NEXT / loop variable
|
||||
BeginCDeclaration
|
||||
#define Cj I
|
||||
EndC
|
||||
system double Cj
|
||||
|
||||
local fn PrintComplexNumber( z as double_complex )
|
||||
double y
|
||||
print @fn creal( z ) " ";
|
||||
y = fn cimag( z )
|
||||
if ( y >= 0.0 ) then print @"+"; : else print @"-";
|
||||
print @abs( y ) "i"
|
||||
end fn
|
||||
|
||||
window 1,@"Arithmetic/Complex"
|
||||
|
||||
double_complex z1, z2, z3, z4, z5, z6
|
||||
double_complex z7, z8, z9, zs, zn
|
||||
|
||||
z1 = 1.5 + 3 * Cj //1.5 + 3i
|
||||
z2 = 1.5 + 1.5 * Cj //1.5 + 1.5i
|
||||
|
||||
// Operations using C99 operators
|
||||
z3 = z1 + z2 // addition
|
||||
z4 = z1 - z2 // subtraction
|
||||
z5 = z1 * z2 // multiplication
|
||||
z6 = z1 / z2 // division
|
||||
//----------------
|
||||
z7 = fn conj(z1) // conjugate
|
||||
z8 = fn cpow(z1,z2) // power ^
|
||||
z9 = fn cabs(z1) // norm | magnitude
|
||||
zs = fn csqrt(z1) // square root
|
||||
zn = -(z1) // negate
|
||||
|
||||
// Extract real/imag parts using creal/cimag
|
||||
print @
|
||||
print @" z1 + z2 = "; fn creal(z3); " + "; fn cimag(z3); "i"
|
||||
print @" z1 - z2 = "; fn creal(z4); " + "; fn cimag(z4); "i"
|
||||
print @" z1 * z2 = "; fn creal(z5); " + "; fn cimag(z5); "i"
|
||||
print @" z1 / z2 = "; fn creal(z6); " + "; fn cimag(z6); "i"
|
||||
print @" Conj z1 = "; fn creal(z7); " "; fn cimag(z7); "i"
|
||||
print @" Abs z1 = "; fn creal(z9)
|
||||
print @" z1 ^ z2 = ";
|
||||
fn PrintComplexNumber(z8)
|
||||
print @" cSqrt z1= ";
|
||||
fn PrintComplexNumber(zs)
|
||||
print @" -(z1) = ";
|
||||
fn PrintComplexNumber(zn)
|
||||
print @" z1 real = "; fn creal(z1)
|
||||
print @" z1 imag = "; fn cimag(z1)
|
||||
|
||||
HandleEvents
|
||||
Loading…
Add table
Add a link
Reference in a new issue