(*** Complex numbers ***) load"Math" ; (*** NEEDED IN mosml ***) abstype complex = C of real * real with fun ComplexRep( x , y ) = C(x,y) ; val origin = C( 0.0 , 0.0 ) ; fun X( C(x,y) ) = x ; fun Y( C(x,y) ) = y ; fun norm v = Math.sqrt( X(v)*X(v) + Y(v)*Y(v) ) ; fun scalevec( r, v ) = C( r*X(v) , r*Y(v) ) ; fun normal v = scalevec( 1.0/(norm v) , v ) ; fun CartRep v = ( X v , Y v ) ; end ;