C4LIB
A Single Precision Complex Arithmetic Utility Library {#c4lib-a-single-precision-complex-arithmetic-utility-library align="center"}
C4LIB is a C++ library which defines some elementary operations for "C4" or "single precision complex" arithmetic.
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
C4LIB is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version and a Python version.
C4_COMPLEX_LIB, a C++ library which defines a class called c4_complex for complex numbers with single precision components.
C8LIB, a C++ library which implements certain elementary functions for "C8" or double precision complex variables;
COMPLEX_NUMBERS, a C++ program which demonstrates some simple features involved in the use of complex numbers in C programming.
I4LIB, a C++ library which contains many utility routines, using "I4" or "single precision integer" arithmetic.
I8LIB, a C++ library which contains many utility routines, using "I8" or "double precision integer" arithmetic.
L4LIB, a C++ library which contains many utility routines, using one byte logical (L4) variables.
R4LIB, a C++ library which contains many utility routines, using "R4" or "single precision real" arithmetic.
R8LIB, a C++ library which contains many utility routines, using "R8" or "double precision real" arithmetic.
- c4lib_prb.cpp, the calling program;
- c4lib_prb_output.txt, the output file.
- C4_ABS returns the absolute value of a C4.
- C4_ACOS evaluates the inverse cosine of a C4.
- C4_ACOSH evaluates the inverse hyperbolic cosine of a C4.
- C4_ADD adds two C4's.
- C4_ARG returns the argument of a C4.
- C4_ASIN evaluates the inverse sine of a C4.
- C4_ASINH evaluates the inverse hyperbolic sine of a C4.
- C4_ATAN evaluates the inverse tangent of a C4.
- C4_ATANH evaluates the inverse hyperbolic tangent of a C4.
- C4_CONJ conjugates a C4.
- C4_COPY copies a C4.
- C4_COS evaluates the cosine of a C4.
- C4_COSH evaluates the hyperbolic cosine of a C4.
- C4_CUBE_ROOT returns the principal cube root of a C4.
- C4_DIV divides two C4's.
- C4_DIV_R4 divides a C4 by an R4.
- C4_EXP exponentiates a C4.
- C4_I returns the value of the imaginary unit, i as a C4.
- C4_IMAG returns the imaginary part of a C4.
- C4_INV inverts a C4.
- C4_LE_L1 := X <= Y for C4 values, and the L1 norm.
- C4_LE_L2 := X <= Y for C4 values, and the L2 norm.
- C4_LE_LI := X <= Y for C4 values, and the L-oo norm.
- C4_LOG evaluates the logarithm of a C4.
- C4_MAG returns the magnitude of a C4.
- C4_MUL multiplies two C4's.
- C4_NEG negates a C4.
- C4_NINT returns the nearest complex integer of a C4.
- C4_NORM_L1 evaluates the L1 norm of a C4.
- C4_NORM_L2 evaluates the L2 norm of a C4.
- C4_NORM_LI evaluates the L-oo norm of a C4.
- C4_NORMAL_01 returns a unit pseudonormal C4.
- C4_ONE returns the value of complex 1.
- C4_PRINT prints a C4.
- C4_REAL returns the real part of a C4.
- C4_SIN evaluates the sine of a C4.
- C4_SINH evaluates the hyperbolic sine of a C4.
- C4_SQRT returns the principal square root of a C4.
- C4_SUB subtracts two C4's.
- C4_SWAP swaps two C4's.
- C4_TAN evaluates the tangent of a C4.
- C4_TANH evaluates the hyperbolic tangent of a C4.
- C4_TO_CARTESIAN converts a C4 to Cartesian form.
- C4_TO_POLAR converts a C4 to polar form.
- C4_UNIFORM_01 returns a unit pseudorandom C4.
- C4_ZERO returns the value of 0 as a C4.
- C4MAT_ADD combines two C4MAT's using complex scalar factors.
- C4MAT_ADD_R4 combines two C4MAT's using real scalar factors.
- C4MAT_COPY copies one C4MAT to another.
- C4MAT_COPY_NEW copies one C4MAT to a "new" C4MAT.
- C4MAT_FSS factors and solves a system with multiple right hand sides.
- C4MAT_FSS_NEW factors and solves a system with multiple right hand sides.
- C4MAT_IDENTITY_NEW sets a C4MAT to the identity.
- C4MAT_INDICATOR_NEW returns the C4MAT indicator matrix.
- C4MAT_MINVM returns inverse(A) * B for C4MAT's.
- C4MAT_MINVM_NEW returns inverse(A) * B for C4MAT's.
- C4MAT_MM multiplies two matrices.
- C4MAT_MM_NEW multiplies two matrices.
- C4MAT_NINT rounds the entries of a C4MAT.
- C4MAT_NORM_FRO returns the Frobenius norm of a C4MAT.
- C4MAT_NORM_L1 returns the matrix L1 norm of a C4MAT.
- C4MAT_NORM_LI returns the matrix L-oo norm of a C4MAT.
- C4MAT_PRINT prints a C4MAT.
- C4MAT_PRINT_SOME prints some of a C4MAT.
- C4MAT_SCALE scales a C4MAT by a complex scalar factor.
- C4MAT_SCALE_R4 scales a C4MAT by a real scalar factor.
- C4MAT_UNIFORM_01 returns a unit pseudorandom C4MAT.
- C4MAT_UNIFORM_01_NEW returns a new unit pseudorandom C4MAT.
- C4MAT_ZERO_NEW returns a new zeroed C4MAT.
- C4VEC_COPY copies a C4VEC.
- C4VEC_COPY_NEW copies a C4VEC to a "new" C4VEC.
- C4VEC_INDICATOR_NEW sets a C4VEC to the indicator vector.
- C4VEC_NINT rounds the entries of a C4VEC.
- C4VEC_NORM_L2 returns the L2 norm of a C4VEC.
- C4VEC_PRINT prints a C4VEC.
- C4VEC_PRINT_PART prints "part" of a C4VEC.
- C4VEC_PRINT_SOME prints some of a C4VEC.
- C4VEC_SORT_A_L2 ascending sorts a C4VEC by L2 norm.
- C4VEC_SPIRAL returns N points on a spiral between C1 and C2.
- C4VEC_UNIFORM_01 returns a unit pseudorandom C4VEC.
- C4VEC_UNIFORM_01_NEW returns a unit pseudorandom C4VEC.
- C4VEC_UNITY returns the N roots of unity in a C4VEC.
- CARTESIAN_TO_C4 converts a Cartesian form to a C4.
- I4_MAX returns the maximum of two I4's.
- I4_MIN returns the minimum of two I4's.
- POLAR_TO_C4 converts a polar form to a C4.
- R4_ABS returns the absolute value of an R4.
- R4_CSQRT returns the complex square root of an R4.
- R4_FLOOR rounds an R4 "down" (towards -oo) to the next integer.
- R4_MAX returns the maximum of two R4's.
- R4_NINT returns the nearest integer to an R4.
- R4_SIGN returns the sign of an R4.
- R4_UNIFORM_01 returns a unit pseudorandom R4.
- R4POLY2_ROOT returns the two roots of a quadratic polynomial.
- R4POLY3_ROOT returns the three roots of a cubic polynomial.
- R4POLY4_ROOT returns the four roots of a quartic polynomial.
- SORT_HEAP_EXTERNAL externally sorts a list of items into ascending order.
- TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to the C++ source codes.
Last revised on 10 March 2014.