#include #include "complex.h" #include "natfunc.h" #include #pragma -W-stv char *sprcx( Tcomplex *); main() { Tcomplex c1 = { 1, 2}, /* 1 + 2i */ c2 = { 0, 0}, /* 0 */ c3; double x1, x2, x3; printf( "\nc1 = %s\n", sprcx( &c1)); printf( "c2 = %s\n", sprcx( &c2)); CX_CPY( c2, c1); printf( "c2 <-- c1\nc2= %s\n\n", sprcx( &c1)); CX_DEF( c2, 2.5, 0.3) printf( "Jetzt hat c2 den Wert %s\n", sprcx( &c2)); c1 = cx_konj( c2); printf( "Die komplex-konjungierte von c2 ist %s\n\n", sprcx( &c1)); CX_NEG( c2); printf( "-c2 = %s\n\n", sprcx( &c2)); CX_NEG( c2); printf( "Signum( %s) = ", sprcx( &c2)); c2 = cx_sgn( c2); printf( "%s\n\n", sprcx( &c2)); printf( "Argument( %s) = %lg\n\n", sprcx( &c2), cx_arg( c2)); printf( "Betrag( %s) = %lg\n\n", sprcx( &c2), CX_BTRG( c2)); c3 = cx_poltocart( 5, 3.1); printf( "Betrag( z)=5, Argument( z)=3.1 <=> z = %s\n\n", sprcx( &c3)); CX_DEF( c1, 2, -3); cx_riemann( &x1, &x2, &x3, c1); printf( "%s hat die Riemannschen Koordinaten : \n", sprcx( &c1)); printf( " %lg, %lg, %lg\n\n", x1, x2, x3); c2 = cx_criem( x1, x2, x3); printf( "... und zurck mit cx-criem:%s\n\n", sprcx( &c2)); CX_DEF( c2, 2.5, 0.3); CX_DEF( c3, 0, 1); printf( "c2 = %s, ", sprcx( &c2)); printf( "c3 = %s\n", sprcx( &c3)); c1 = cx_add( c2, c3); printf( "c2 + c3 = %s\n", sprcx( &c1)); c1 = cx_sub( c2, c3); printf( "c2 - c3 = %s\n", sprcx( &c1)); c1 = cx_mult( c2, c3); printf( "c2 * c3 = %s\n", sprcx( &c1)); c1 = cx_div( c2, c3); printf( "c2 / c3 = %s\n", sprcx( &c1)); c1 = cx_inv( c2); printf( "1 / c2 = %s\n", sprcx( &c1)); c1 = cx_sqr( c2); printf( "c2^2 = %s\n", sprcx( &c1)); c1 = cx_sqrt( c2); printf( "Wurzel c2 = %s\n", sprcx( &c1)); CX_DEF( c3, 0, 3.14159265358979323846); c1 = cx_exp( c3); printf( "exp( 0.0 + pi*i) = %s\n", sprcx( &c1)); CX_DEF( c3, -1, 0); c1 = cx_ln( c3); printf( "ln( -1) = %s\n\n", sprcx( &c1)); CX_DEF( c3, 0.5, 1); c1 = cx_arcsin( c3); printf( "arcsin( 0.5 + i) = %s\n", sprcx( &c1)); c1 = cx_sin( c1); printf( "sin( arcsin( 0.5 + i)) = %s\n", sprcx( &c1)); c1 = cx_arccos( c3); printf( "arccos( 0.5 + i) = %s\n", sprcx( &c1)); c1 = cx_cos( c1); printf( "cos( arccos( 0.5 + i)) = %s\n", sprcx( &c1)); c1 = cx_arctan( c3); printf( "arctan( 0.5 + i) = %s\n", sprcx( &c1)); c1 = cx_tan( c1); printf( "tan( arctan( 0.5 + i)) = %s\n\n", sprcx( &c1)); c1 = cx_arsinh( c3); printf( "arsinh( 0.5 + i) = %s\n", sprcx( &c1)); c1 = cx_sinh( c1); printf( "sinh( arsinh( 0.5 + i)) = %s\n", sprcx( &c1)); c1 = cx_arcosh( c3); printf( "arcosh( 0.5 + i) = %s\n", sprcx( &c1)); c1 = cx_cosh( c1); printf( "cosh( arcosh( 0.5 + i)) = %s\n", sprcx( &c1)); c1 = cx_artanh( c3); printf( "artanh( 0.5 + i) = %s\n", sprcx( &c1)); c1 = cx_tanh( c1); printf( "tanh( artanh( 0.5 + i)) = %s\n", sprcx( &c1)); return( SUCCESS); } char *sprcx( c) Tcomplex *c; { static char str[ 128]; char ch = '+'; double cim; if( c->im < 0) { ch = '-'; cim = - c->im; } else cim = c->im; sprintf( str, "%.5lf %c %.5lf*i", c->re, ch, cim); return( str); }