00001 /* 00002 File: VLc.h 00003 00004 Function: Master header for a version of the VL library based on complex numbers. 00005 The various classes are named Vecc, Mat3c, SparseVecc, etc. 00006 00007 Author(s): Andrew Willmott 00008 00009 Copyright: (c) 1995-2000, Andrew Willmott 00010 */ 00011 00012 00013 #ifndef __VLf__ 00014 #define __VLf__ 00015 00016 #ifdef __VL__ 00017 #include "vl/VLUndef.h" 00018 #endif 00019 00020 #include "cl/Basics.h" 00021 #include <complex.h> 00022 00023 inline Real len(float_complex c) 00024 { return(sqrt(sqr(real(c)) + sqr(imag(c)))); } 00025 inline Real sqrlen(float_complex c) 00026 { return(sqr(real(c)) + sqr(imag(c))); } 00027 inline Void SetReal(float_complex &a, Real b) 00028 { a = b; } 00029 00030 #define VL_V_REAL float_complex 00031 #define VL_V_SUFF(X) X ## c 00032 #define VL_M_REAL float_complex 00033 #define VL_M_SUFF(X) X ## c 00034 00035 #include "vl/Vec2.h" 00036 #include "vl/Vec3.h" 00037 #include "vl/Vec4.h" 00038 #include "vl/Vec.h" 00039 #include "vl/SparseVec.h" 00040 00041 #include "vl/Mat2.h" 00042 #include "vl/Mat3.h" 00043 #include "vl/Mat4.h" 00044 #include "vl/Mat.h" 00045 #include "vl/SparseMat.h" 00046 #include "vl/Solve.h" 00047 #include "vl/Transform.h" 00048 00049 #endif