R8LIB
A Double Precision Real Arithmetic Utility Library
R8LIB
is a C library which
contains a number of utility routines for "R8" or "double precision real"
arithmetic.
Licensing:
The computer code and data files made available on this web page
are distributed under
the GNU LGPL license.
Languages:
R8LIB is available in
a C version and
a C++ version and
a FORTRAN90 version and
a MATLAB version and
a Python version.
Related Programs:
C4LIB,
a C library which
implements certain elementary functions for "C4" or
single precision complex variables;
C8LIB,
a C library which
implements certain elementary functions for "C8" or
double precision complex variables;
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.
R8COL,
a C library which
contains utility routines for R8COL's, that is,
double precision real MxN arrays, considered as N column vectors,
each of length M. The data may be thought of as a matrix of
multiple columns, and many operations will be carried out columnwise.
R8ROW,
a C library which
contains utility routines for R8ROW's, that is,
double precision real MxN arrays, considered as M row vectors,
each of length N. The data may be thought of as a matrix of
multiple rows, and many operations will be carried out rowwise.
Source Code:
Examples and Tests:
List of Routines:
-
GAMMA_VALUES returns some values of the Gamma function.
-
GAMMA_LOG_VALUES returns some values of the Log Gamma function.
-
I4_LOG_10 returns the integer part of the logarithm base 10 of an I4.
-
I4_MAX returns the maximum of two I4's.
-
I4_MIN returns the smaller of two I4's.
-
I4_MODP returns the nonnegative remainder of I4 division.
-
I4_POWER returns the value of I^J.
-
I4_SIGN returns the sign of an I4.
-
I4_UNIFORM_AB returns a scaled pseudorandom I4 between A and B.
-
I4_WRAP forces an I4 to lie between given limits by wrapping.
-
I4INT_TO_R8INT maps an I4 interval to an R8 interval.
-
I4MAT_PRINT prints an I4MAT.
-
I4MAT_PRINT_SOME prints some of an I4MAT.
-
I4VEC_COPY copies an I4VEC.
-
I4VEC_INDICATOR0_NEW sets an I4VEC to the indicator vector (0,1,2,...).
-
I4VEC_INDICATOR1_NEW sets an I4VEC to the indicator vector (1,2,3,...).
-
I4VEC_PERMUTE permutes an I4VEC in place.
-
I4VEC_PRINT prints an I4VEC.
-
I4VEC_TRANSPOSE_PRINT prints an I4VEC "transposed".
-
I4VEC_ZEROS zeroes an I4VEC.
-
I4VEC_ZEROS_NEW creates and zeroes an I4VEC.
-
LEGENDRE_ZEROS returns the zeros of the Legendre polynomial of degree N.
-
PERM0_CHECK checks a permutation of (0,...,N-1)
-
PERM0_UNIFORM_NEW selects a random permutation of 0, ..., N-1.
-
PERM1_CHECK checks a permutation of (1,...,N).
-
PERM1_UNIFORM_NEW selects a random permutation of 1, ..., N.
-
R8_ABS returns the absolute value of an R8.
-
R8_ACOS computes the arc cosine function, with argument truncation.
-
R8_ACOSH evaluates the arc-hyperbolic cosine of an R8 argument.
-
R8_ADD returns the sum of two R8's.
-
R8_AGM computes the arithmetic-geometric mean of A and B.
-
R8_AINT truncates an R8 argument to an integer.
-
R8_ASIN computes the arc sine function, with argument truncation.
-
R8_ASINH returns the inverse hyperbolic sine of a number.
-
R8_ATAN computes the inverse tangent of the ratio Y / X.
-
R8_ATANH returns the inverse hyperbolic tangent of a number.
-
R8_BIG returns a "big" R8.
-
R8_CAS returns the "casine" of an R8.
-
R8_CEILING rounds an R8 up to the nearest integral R8.
-
R8_CHOOSE computes the combinatorial coefficient C(N,K).
-
R8_CHOP chops an R8 to a given number of binary places.
-
R8_COSD returns the cosine of an angle given in degrees.
-
R8_COT returns the cotangent of an angle.
-
R8_COTD returns the cotangent of an angle given in degrees.
-
R8_CSC returns the cosecant of X.
-
R8_CSCD returns the cosecant of an angle given in degrees.
-
R8_CUBE_ROOT returns the cube root of an R8.
-
R8_DEGREES converts an angle from radian to degree measure.
-
R8_DIFF computes (X-Y) to a specified accuracy.
-
R8_DIGIT returns a particular decimal digit of an R8.
-
R8_DIVIDE_I4 returns an I4 fraction as an R8.
-
R8_E returns the value of the base of the natural logarithm system.
-
R8_EPSILON returns the R8 round off unit.
-
R8_EPSILON_COMPUTE computes the R8 round off unit.
-
R8_EXP computes the exponential function, avoiding overflow and underflow.
-
R8_FACTORIAL computes the factorial of N.
-
R8_FACTORIAL_STIRLING computes Stirling's approximation to N!.
-
R8_FACTORIAL_VALUES returns values of the real factorial function.
-
R8_FACTORIAL2 computes the double factorial function.
-
R8_FACTORIAL2_VALUES returns values of the double factorial function.
-
R8_FALL computes the falling factorial function [X]_N.
-
R8_FALL_VALUES returns some values of the falling factorial function.
-
R8_FLOOR rounds an R8 down to the nearest integral R8.
-
R8_FRACTION uses real arithmetic on an integer ratio.
-
R8_FRACTIONAL returns the fractional part of an R8.
-
R8_GAMMA evaluates Gamma(X) for a real argument.
-
R8_GAMMA_LOG evaluates the logarithm of the gamma function.
-
R8_HUGE returns a "huge" R8.
-
R8_HYPOT returns the value of sqrt ( X^2 + Y^2 ).
-
R8_IS_IN_01 is 1 if an R8 is in the range [0,1].
-
R8_IS_INF determines if an R8 represents an infinite value.
-
R8_INSIGNIFICANT determines if an R8 is insignificant.
-
R8_IS_INTEGER is 1 if an R8 represents an integer value.
-
R8_IS_NAN determines if an R8 represents a NaN value.
-
R8_LOG_10 returns the logarithm base 10 of an R8.
-
R8_LOG_2 returns the logarithm base 2 of an R8.
-
R8_LOG_B returns the logarithm base B of an R8.
-
R8_MANT computes the "mantissa" or "fraction part" of an R8.
-
R8_MAX returns the maximum of two R8's.
-
R8_MIN returns the minimum of two R8's.
-
R8_MOD returns the remainder of R8 division.
-
R8_MODP returns the nonnegative remainder of R8 division.
-
R8_MOP returns the I-th power of -1 as an R8 value.
-
R8_NINT returns the nearest integer to an R8.
-
R8_NORMAL_01 samples the standard normal probability distribution.
-
R8_NORMAL_AB returns a scaled pseudonormal R8.
-
R8_NTH_ROOT returns the nth-root of an R8.
-
R8_PI returns the value of PI as an R8.
-
R8_PI_SQRT returns the square root of PI as an R8.
-
R8_POWER computes an integer power of an R8.
-
R8_POWER_FAST computes the P-th power of R, for real R and integer P.
-
R8_PRINT prints an R8.
-
R8_RADIANS converts an angle from degree to radian measure.
-
R8_REVERSE_BYTES reverses the bytes in an R8.
-
R8_RISE computes the rising factorial function [X]^N.
-
R8_RISE_VALUES returns some values of the rising factorial function.
-
R8_ROUND rounds an R8 to the nearest integral value.
-
R8_ROUND_I4 rounds an R8, returning an I4.
-
R8_ROUND2 rounds an R8 in base 2.
-
R8_ROUNDB rounds an R8 in a given base.
-
R8_ROUNDX rounds an R8 in base 10.
-
R8_SECD returns the secant of an angle given in degrees.
-
R8_SECH evaluates the hyperbolic secant, while avoiding COSH overflow.
-
R8_SIGMOID evaluates the sigmoid function.
-
R8_SIGN returns the sign of an R8.
-
R8_SIGN3 returns the three-way sign of an R8.
-
R8_SIGN_CHAR returns a character indicating the sign of an R8.
-
R8_SIGN_MATCH is TRUE if two R8's are of the same sign.
-
R8_SIGN_MATCH_STRICT is TRUE if two R8's are of the same strict sign.
-
R8_SIGN_OPPOSITE is TRUE if two R8's are not of the same sign.
-
R8_SIGN_OPPOSITE_STRICT is TRUE if two R8's are strictly of opposite sign.
-
R8_SIGN2 returns the first argument with the sign of the second.
-
R8_SINCOS_SUM simplifies a*sin(cx)+b*cos(cx).
-
R8_SIND returns the sine of an angle given in degrees.
-
R8_SOFTPLUS evaluates the softplus function of an R8.
-
R8_SQRT_I4 returns the square root of an I4 as an R8.
-
R8_SUM returns the sum of two R8's.
-
R8_SWAP switches two R8's.
-
R8_SWAP3 swaps three R8's.
-
R8_TAND returns the tangent of an angle given in degrees.
-
R8_TINY returns a "tiny" R8.
-
R8_TO_DHMS converts an R8 day value into days, hours, minutes, seconds.
-
R8_TO_I4 maps real X in [XMIN, XMAX] to integer IX in [IXMIN, IXMAX].
-
R8_TO_R8_DISCRETE maps R to RD in [RMIN, RMAX] with NR possible values.
-
R8_UNIFORM_01 returns a pseudorandom R8 scaled to [0,1].
-
R8_UNIFORM_AB returns a pseudorandom R8 scaled to [A,B].
-
R8_UNSWAP3 unswaps three real items.
-
R8_WALSH_1D evaluates the Walsh function of a real scalar argument.
-
R8_WRAP forces an R8 to lie between given limits by wrapping.
-
R82_DIST_L2 returns the L2 distance between a pair of R82's.
-
R82_PRINT prints an R82.
-
R82_UNIFORM_AB returns a pseudorandom R82 scaled to [A,B].
-
R82COL_PRINT_PART prints "part" of an R82COL.
-
R82ROW_MAX returns the maximum value in an R82ROW.
-
R82ROW_MIN returns the minimum value in an R82ROW.
-
R82ROW_ORDER_TYPE finds if an R82ROW is (non)strictly ascending/descending.
-
R82ROW_PART_QUICK_A reorders an R82ROW as part of a quick sort.
-
R82ROW_PERMUTE permutes an R82ROW in place.
-
R82ROW_PRINT prints an R82ROW.
-
R82ROW_PRINT_PART prints "part" of an R82ROW.
-
R82ROW_SORT_HEAP_INDEX_A does an indexed heap ascending sort of an R82ROW.
-
R82ROW_SORT_QUICK_A ascending sorts an R82ROW using quick sort.
-
R83_NORM returns the Euclidean norm of an R83.
-
R83COL_PRINT_PART prints "part" of an R83COL.
-
R83ROW_MAX returns the maximum value in an R83ROW.
-
R83ROW_MIN returns the minimum value in an R83ROW.
-
R83ROW_PART_QUICK_A reorders an R83ROW as part of a quick sort.
-
R83ROW_PRINT_PART prints "part" of an R83ROW.
-
R83ROW_SORT_QUICK_A ascending sorts an R83ROW using quick sort.
-
R8BLOCK_DELETE frees memory associated with an R8BLOCK.
-
R8BLOCK_EXPAND_LINEAR linearly interpolates new data into a 3D block.
-
R8BLOCK_NEW allocates a new R8BLOCK.
-
R8BLOCK_PRINT prints an R8BLOCK block (a 3D matrix).
-
R8BLOCK_ZEROS_NEW returns a new zeroed R8BLOCK.
-
R8CMAT_DELETE frees the memory set aside by R8CMAT_NEW.
-
R8CMAT_NEW sets up an R8CMAT of the desired dimensions.
-
R8CMAT_PRINT prints an R8CMAT.
-
R8CMAT_PRINT_SOME prints some of an R8CMAT.
-
R8CMAT_TO_R8MAT_NEW copies data from an R8CMAT to an R8MAT.
-
R8CMAT_ZEROS_NEW sets up and zeros an R8CMAT of the desired dimensions.
-
R8INT_TO_R8INT maps one R8 interval to another.
-
R8INT_TO_I4INT maps an R8 interval to an integer interval.
-
R8MAT_ADD computes C = alpha * A + beta * B for R8MAT's.
-
R8MAT_ADD_NEW computes C = alpha * A + beta * B for R8MAT's.
-
R8MAT_AMAX returns the maximum absolute value entry of an R8MAT.
-
R8MAT_BORDER_ADD adds a "border" to an R8MAT.
-
R8MAT_BORDER_CUT cuts the "border" of an R8MAT.
-
R8MAT_CHOLESKY_FACTOR computes the Cholesky factor of a symmetric R8MAT.
-
R8MAT_CHOLESKY_FACTOR_UPPER: upper Cholesky factor of a symmetric R8MAT.
-
R8MAT_CHOLESKY_INVERSE computes the inverse of a symmetric matrix.
-
R8MAT_CHOLESKY_SOLVE solves a Cholesky factored linear system A * x = b.
-
R8MAT_CHOLESKY_SOLVE_UPPER solves Cholesky factored linear system A * x = b.
-
R8MAT_COPY copies one R8MAT to another.
-
R8MAT_COPY_NEW copies one R8MAT to a "new" R8MAT.
-
R8MAT_COVARIANCE computes the sample covariance of a set of vector data.
-
R8MAT_DET computes the determinant of an R8MAT.
-
R8MAT_DET_2D computes the determinant of a 2 by 2 R8MAT.
-
R8MAT_DET_3D computes the determinant of a 3 by 3 R8MAT.
-
R8MAT_DET_4D computes the determinant of a 4 by 4 R8MAT.
-
R8MAT_DET_5D computes the determinant of a 5 by 5 R8MAT.
-
R8MAT_DIAG_ADD_SCALAR adds a scalar to the diagonal of an R8MAT.
-
R8MAT_DIAG_ADD_VECTOR adds a vector to the diagonal of an R8MAT.
-
R8MAT_DIAG_GET_VECTOR gets the value of the diagonal of an R8MAT.
-
R8MAT_DIAG_GET_VECTOR_NEW gets the value of the diagonal of an R8MAT.
-
R8MAT_DIAG_SET_SCALAR sets the diagonal of an R8MAT to a scalar value.
-
R8MAT_DIAG_SET_VECTOR sets the diagonal of an R8MAT to a vector.
-
R8MAT_DIAGONAL_NEW returns a diagonal matrix.
-
R8MAT_DIFF_FROBENIUS returns the Frobenius norm of the difference of R8MAT's.
-
R8MAT_EXPAND_LINEAR linearly interpolates new data into an R8MAT.
-
R8MAT_EXPAND_LINEAR2 expands an R8MAT by linear interpolation.
-
R8MAT_FLIP_COLS_NEW makes a new copy of an R8MAT with reversed column order.
-
R8MAT_FLIP_ROWS_NEW makes a new copy of an R8MAT with reversed row order.
-
R8MAT_FS factors and solves a system with one right hand side.
-
R8MAT_FS_NEW factors and solves a system with one right hand side.
-
R8MAT_FSS factors and solves a system with multiple right hand sides.
-
R8MAT_FSS_NEW factors and solves a system with multiple right hand sides.
-
R8MAT_GIVENS_POST computes the Givens postmultiplier rotation matrix.
-
R8MAT_GIVENS_PRE computes the Givens premultiplier rotation matrix.
-
R8MAT_HESS approximates a Hessian matrix via finite differences.
-
R8MAT_HOUSE_AXH computes A*H where H is a compact Householder matrix.
-
R8MAT_HOUSE_AXH_NEW computes A*H where H is a compact Householder matrix.
-
R8MAT_HOUSE_FORM constructs a Householder matrix from its compact form.
-
R8MAT_HOUSE_HXA computes H*A where H is a compact Householder matrix.
-
R8MAT_HOUSE_POST computes a Householder post-multiplier matrix.
-
R8MAT_HOUSE_PRE computes a Householder pre-multiplier matrix.
-
R8MAT_IDENTITY sets an R8MAT to the identity matrix.
-
R8MAT_IDENTITY_NEW returns an identity matrix.
-
R8MAT_INDICATOR_NEW sets up an "indicator" R8MAT.
-
R8MAT_INVERSE_2D inverts a 2 by 2 R8MAT using Cramer's rule.
-
R8MAT_INVERSE_3D inverts a 3 by 3 R8MAT using Cramer's rule.
-
R8MAT_INVERSE_4D inverts a 4 by 4 matrix using Cramer's rule.
-
R8MAT_IS_BINARY is true if the entries in an R8MAT are all 0 or 1.
-
R8MAT_IS_IDENTITY determines if an R8MAT is the identity.
-
R8MAT_IS_IN_01 is TRUE if the entries of an R8MAT are in the range [0,1].
-
R8MAT_IS_INSIGNIFICANT determines if an R8MAT is relatively insignificant.
-
R8MAT_IS_INTEGER is true if an R8MAT only contains integer entries.
-
R8MAT_IS_SIGNIFICANT determines if an R8MAT is relatively significant.
-
R8MAT_IS_SYMMETRIC checks an R8MAT for symmetry.
-
R8MAT_JAC estimates a dense jacobian matrix of the function FX.
-
R8MAT_KRONECKER computes the Kronecker product of two R8MAT's.
-
R8MAT_L_INVERSE inverts a lower triangular R8MAT.
-
R8MAT_L_PRINT prints a lower triangular R8MAT.
-
R8MAT_L_SOLVE solves a lower triangular linear system.
-
R8MAT_L1_INVERSE inverts a unit lower triangular R8MAT.
-
R8MAT_LT_SOLVE solves a transposed lower triangular linear system.
-
R8MAT_LU computes the LU factorization of a rectangular R8MAT.
-
R8MAT_MAX returns the maximum entry of an R8MAT.
-
R8MAT_MAX_COLUMNS returns the column maximums of an R8MAT.
-
R8MAT_MAX_INDEX returns the location of the maximum entry of an R8MAT.
-
R8MAT_MAX_ROWS returns the row maximums of an R8MAT.
-
R8MAT_MAXCOL_MINROW gets the maximum column minimum row of an M by N matrix.
-
R8MAT_MAXROW_MINCOL gets the maximum row minimum column of an M by N matrix.
-
R8MAT_MEAN returns the mean of an R8MAT.
-
R8MAT_MEAN_COLUMNS returns the column means of an R8MAT.
-
R8MAT_MEAN_ROWS returns the row means of an R8MAT.
-
R8MAT_MIN returns the minimum entry of an R8MAT.
-
R8MAT_MIN_COLUMNS returns the column minimums of an R8MAT.
-
R8MAT_MIN_INDEX returns the location of the minimum entry of an R8MAT.
-
R8MAT_MIN_ROWS returns the row minimums of an R8MAT.
-
R8MAT_MINCOL_MAXROW gets the minimum column maximum row of an M by N matrix.
-
R8MAT_MINROW_MAXCOL gets the minimum row maximum column of an M by N matrix.
-
R8MAT_MINVM returns C = inverse(A) * B for R8MAT's.
-
R8MAT_MINVM_NEW returns inverse(A) * B for R8MAT's.
-
R8MAT_MM multiplies two matrices.
-
R8MAT_MM_NEW multiplies two matrices.
-
R8MAT_MMT_NEW computes C = A * B'.
-
R8MAT_MTM_NEW computes C = A' * B.
-
R8MAT_MTV multiplies a transposed matrix times a vector.
-
R8MAT_MTV_NEW multiplies a transposed matrix times a vector.
-
R8MAT_MV multiplies a matrix times a vector.
-
R8MAT_MV_NEW multiplies a matrix times a vector.
-
R8MAT_NINT rounds the entries of an R8MAT.
-
R8MAT_NONZEROS counts the nonzeros in an R8MAT.
-
R8MAT_NORM_EIS returns the EISPACK norm of an R8MAT.
-
R8MAT_NORM_FRO returns the Frobenius norm of an R8MAT.
-
R8MAT_NORM_FRO_AFFINE returns the Frobenius norm of an R8MAT difference.
-
R8MAT_NORM_L1 returns the matrix L1 norm of an R8MAT.
-
R8MAT_NORM_L2 returns the matrix L2 norm of an R8MAT.
-
R8MAT_NORM_LI returns the matrix L-oo norm of an R8MAT.
-
R8MAT_NORMAL_01_NEW returns a unit pseudonormal R8MAT.
-
R8MAT_NULLSPACE computes the nullspace of a matrix.
-
R8MAT_NULLSPACE_SIZE computes the size of the nullspace of a matrix.
-
R8MAT_ORTH_UNIFORM returns a random orthogonal matrix.
-
R8MAT_ORTH_UNIFORM_NEW returns a random orthogonal matrix.
-
R8MAT_PLOT "plots" an R8MAT.
-
R8MAT_PLOT_SYMBOL returns a symbol for entries of an R8MAT.
-
R8MAT_POLY_CHAR computes the characteristic polynomial of an R8MAT.
-
R8MAT_POWER computes a nonnegative power of an R8MAT.
-
R8MAT_POWER_METHOD applies the power method to a matrix.
-
R8MAT_PRINT prints an R8MAT.
-
R8MAT_PRINT_SOME prints some of an R8MAT.
-
R8MAT_PRODUCT_ELEMENTWISE returns the elementwise produce to two R8MAT's.
-
R8MAT_REF computes the row echelon form of a matrix.
-
R8MAT_RMS returns the RMS norm of an R8MAT.
-
R8MAT_ROW_COPY copies a vector into a row of an R8MAT.
-
R8MAT_RREF computes the reduced row echelon form of a matrix.
-
R8MAT_SCALE multiplies an R8MAT by a scalar.
-
R8MAT_SOLVE uses Gauss-Jordan elimination to solve an N by N linear system.
-
R8MAT_SOLVE_2D solves a 2 by 2 linear system using Cramer's rule.
-
R8MAT_SOLVE_3D solves a 3 by 3 linear system using Cramer's rule.
-
R8MAT_SOLVE2 computes the solution of an N by N linear system.
-
R8MAT_STANDARDIZE standardizes an R8MAT.
-
R8MAT_STD_COLUMNS returns the column standard deviation of an R8MAT.
-
R8MAT_STD_ROWS returns the row standard deviations of an R8MAT.
-
R8MAT_SUM returns the sum of an R8MAT.
-
R8MAT_SUM_COLUMNS returns the column sums of an R8MAT.
-
R8MAT_SUM_ROWS returns the row sums of an R8MAT.
-
R8MAT_SYMM_EIGEN returns a symmetric matrix with given eigensystem.
-
R8MAT_SYMM_JACOBI applies Jacobi eigenvalue iteration to a symmetric matrix.
-
R8MAT_TO_R8CMAT_NEW copies data from an R8MAT to an R8CMAT.
-
R8MAT_TO_R8PLU factors a general matrix.
-
R8MAT_TO_R8RMAT copies data from an R8MAT to an R8RMAT.
-
R8MAT_TRACE computes the trace of an R8MAT.
-
R8MAT_TRANSPOSE_IN_PLACE transposes a square matrix in place.
-
R8MAT_TRANSPOSE_NEW returns the transpose of a matrix.
-
R8MAT_TRANSPOSE_PRINT prints an R8MAT, transposed.
-
R8MAT_TRANSPOSE_PRINT_SOME prints some of an R8MAT, transposed.
-
R8MAT_U_INVERSE inverts an upper triangular R8MAT.
-
R8MAT_U_SOLVE solves an upper triangular linear system.
-
R8MAT_U1_INVERSE inverts a unit upper triangular R8MAT.
-
R8MAT_UNIFORM_01 fills an R8MAT with pseudorandom values scaled to [0,1].
-
R8MAT_UNIFORM_01_NEW fills an R8MAT with pseudorandom values scaled to [0,1].
-
R8MAT_UNIFORM_AB returns a pseudorandom R8MAT scaled to [A,B].
-
R8MAT_UNIFORM_AB_NEW returns a scaled pseudorandom R8MAT.
-
R8MAT_UNIFORM_ABVEC returns a scaled pseudorandom R8MAT.
-
R8MAT_UNIFORM_ABVEC_NEW returns a scaled pseudorandom R8MAT.
-
R8MAT_UT_SOLVE solves a transposed upper triangular linear system.
-
R8MAT_VAND2 returns the N by N row Vandermonde matrix A.
-
R8MAT_VARIANCE_COLUMNS returns the column variances of an R8MAT.
-
R8MAT_VARIANCE_ROWS returns the row variances of an R8MAT.
-
R8MAT_VTMV multiplies computes the scalar x' * A * y.
-
R8MAT_ZEROS zeroes an R8MAT.
-
R8MAT_ZEROS_NEW returns a new zeroed R8MAT.
-
R8PLU_DET computes the determinant of a real PLU matrix.
-
R8PLU_INVERSE computes the inverse of a real PLU matrix.
-
R8PLU_MUL computes A * x using the PLU factors of A.
-
R8PLU_SOL solves a linear system A*x=b from the PLU factors.
-
R8PLU_TO_R8MAT recovers the matrix A that was factored by R8MAT_TO_R8PLU.
-
R8R8_COMPARE compares two R8R8's.
-
R8R8_PRINT prints an R8R8.
-
R8R8R8_COMPARE compares two R8R8R8's.
-
R8R8R8VEC_INDEX_INSERT_UNIQUE inserts a unique R8R8R8 value in an indexed sorted list.
-
R8R8R8VEC_INDEX_SEARCH searches for an R8R8R8 value in an indexed sorted list.
-
R8R8VEC_INDEX_INSERT_UNIQUE inserts a unique R8R8 value in an indexed sorted list.
-
R8R8VEC_INDEX_SEARCH searches for an R8R8 value in an indexed sorted list.
-
R8RMAT_COPY_NEW makes a new copy of an R8RMAT .
-
R8RMAT_DELETE frees the memory set aside by R8RMAT_NEW.
-
R8RMAT_FS_NEW factors and solves an R8RMAT system with one right hand side.
-
R8RMAT_NEW sets up an R8RMAT of the desired dimensions.
-
R8RMAT_PRINT prints an R8RMAT.
-
R8RMAT_PRINT_SOME prints some of an R8RMAT.
-
R8RMAT_TO_R8MAT copies data from an R8RMAT to an R8MAT.
-
R8RMAT_ZEROS sets up and zeros an R8RMAT of the desired dimensions.
-
R8ROWS_TO_R8MAT converts a row-major vector to an R8MAT.
-
R8SLMAT_PRINT prints a strict lower triangular R8MAT.
-
R8VEC_01_TO_AB shifts and rescales data to lie within given bounds.
-
R8VEC_ADD adds one R8VEC to another.
-
R8VEC_AMAX returns the maximum absolute value in an R8VEC.
-
R8VEC_AMAX_INDEX returns the index of the maximum absolute value in an R8VEC.
-
R8VEC_AMIN returns the minimum absolute value in an R8VEC.
-
R8VEC_AMIN_INDEX returns the index of the minimum absolute value in an R8VEC.
-
R8VEC_ANY_NORMAL returns some normal vector to V1.
-
R8VEC_APPEND appends an entry to an R8VEC.
-
R8VEC_APPEND_NEW appends a value to an R8VEC.
-
R8VEC_ASUM sums the absolute values of the entries of an R8VEC.
-
R8VEC_BIN computes bins based on a given R8VEC.
-
R8VEC_BINARY_NEXT generates the next binary vector.
-
R8VEC_BRACKET searches a sorted array for successive brackets of a value.
-
R8VEC_BRACKET2 searches a sorted array for successive brackets of a value.
-
R8VEC_BRACKET3 finds the interval containing or nearest a given value.
-
R8VEC_BRACKET4 finds the interval containing or nearest a given value.
-
R8VEC_BRACKET5 brackets data between successive entries of a sorted R8VEC.
-
R8VEC_BRACKET6 brackets data between successive entries of a sorted R8VEC.
-
R8VEC_CHEBY_EXTREME_NEW creates Chebyshev Extreme values in [A,B].
-
R8VEC_CHEBY_ZERO_NEW creates Chebyshev Zero values in [A,B].
-
R8VEC_CHEBY1SPACE_NEW creates Chebyshev Type 1 values in [A,B].
-
R8VEC_CHEBY2SPACE_NEW creates Chebyshev Type 2 values in [A,B].
-
R8VEC_COMPARE compares two R8VEC's.
-
R8VEC_CONCATENATE concatenates two R8VEC's.
-
R8VEC_CONCATENATE_NEW concatenates two R8VEC's.
-
R8VEC_CONVOLUTION returns the convolution of two R8VEC's.
-
R8VEC_CONVOLUTION_CIRC: discrete circular convolution of two R8VEC's.
-
R8VEC_COPY copies an R8VEC.
-
R8VEC_COPY_NEW copies an R8VEC.
-
R8VEC_CORRELATION returns the correlation of two R8VEC's.
-
R8VEC_COVARIANCE computes the covariance of two vectors.
-
R8VEC_CROSS_PRODUCT_2D finds the cross product of a pair of R8VEC's in 2D.
-
R8VEC_CROSS_PRODUCT_AFFINE_2D finds the affine cross product in 2D.
-
R8VEC_CROSS_PRODUCT_3D computes the cross product of two R8VEC's in 3D.
-
R8VEC_CROSS_PRODUCT_AFFINE_3D computes the affine cross product in 3D.
-
R8VEC_CUM_NEW computes the cumulutive sums of an R8VEC.
-
R8VEC_CUM0_NEW computes the cumulutive sums of an R8VEC.
-
R8VEC_DIF computes coefficients for estimating the N-th derivative.
-
R8VEC_DIFF_NORM returns the L2 norm of the difference of R8VEC's.
-
R8VEC_DIFF_NORM_L1 returns the L1 norm of the difference of R8VEC's.
-
R8VEC_DIFF_NORM_L2 returns the L2 norm of the difference of R8VEC's.
-
R8VEC_DIFF_NORM_LI returns the L-oo norm of the difference of R8VEC's.
-
R8VEC_DIFF_NORM_SQUARED: square of the L2 norm of the difference of R8VEC's.
-
R8VEC_DIRECT_PRODUCT creates a direct product of R8VEC's.
-
R8VEC_DIRECT_PRODUCT2 creates a direct product of R8VEC's.
-
R8VEC_DISTANCE returns the Euclidean distance between two R8VEC's.
-
R8VEC_DIVIDE divides an R8VEC by a nonzero scalar.
-
R8VEC_DOT_PRODUCT computes the dot product of a pair of R8VEC's.
-
R8VEC_DOT_PRODUCT_AFFINE computes the affine dot product.
-
R8VEC_ENTROPY computes the entropy of an R8VEC.
-
R8VEC_EQ is true if two R8VEC's are equal.
-
R8VEC_EVEN returns an R8VEC of values evenly spaced between ALO and AHI.
-
R8VEC_EVEN_NEW returns an R8VEC of values evenly spaced between ALO and AHI.
-
R8VEC_EVEN_SELECT returns the I-th of N evenly spaced values in [ XLO, XHI ].
-
R8VEC_EVEN2 linearly interpolates new numbers into an R8VECa.
-
R8VEC_EVEN2_SELECT returns the I-th of N evenly spaced midpoint values.
-
R8VEC_EVEN3 evenly interpolates new data into an R8VEC.
-
R8VEC_EXPAND_LINEAR linearly interpolates new data into an R8VEC.
-
R8VEC_EXPAND_LINEAR2 linearly interpolates new data into an R8VEC.
-
R8VEC_FILL sets all entries of an R8VEC to a given value.
-
R8VEC_FILL_NEW creates an R8VEC, setting all entries to a given value.
-
R8VEC_FIRST_INDEX indexes the first occurrence of values in an R8VEC.
-
R8VEC_FRAC searches for the K-th smallest entry in an R8VEC.
-
R8VEC_FRACTION returns the fraction parts of an R8VEC.
-
R8VEC_GT == ( A1 > A2 ) for two R8VEC's.
-
R8VEC_HEAP_A reorders an R8VEC into a ascending heap.
-
R8VEC_HEAP_D reorders an R8VEC into a descending heap.
-
R8VEC_HISTOGRAM histograms an R8VEC.
-
R8VEC_HOUSE_COLUMN defines a Householder premultiplier that "packs" a column.
-
R8VEC_I4VEC_DOT_PRODUCT computes the dot product of an R8VEC and an I4VEC.
-
R8VEC_IDENTITY_ROW_NEW sets an R8VEC to the I-th row of the identity.
-
R8VEC_INDEX_DELETE_ALL deletes all occurrences of a value from an indexed sorted list.
-
R8VEC_INDEX_DELETE_DUPES deletes duplicates from an indexed sorted list.
-
R8VEC_INDEX_DELETE_ONE deletes one copy of a value from an indexed sorted list.
-
R8VEC_INDEX_INSERT inserts a value in an indexed sorted list.
-
R8VEC_INDEX_INSERT_UNIQUE inserts a unique value in an indexed sorted list.
-
R8VEC_INDEX_ORDER sorts an R8VEC using an index vector.
-
R8VEC_INDEX_SEARCH searches for a value in an indexed sorted R8VEC.
-
R8VEC_INDEX_SORT_UNIQUE creates a sort index for an R8VEC.
-
R8VEC_INDEX_SORTED_RANGE: search index sorted vector for elements in a range.
-
R8VEC_INDEXED_HEAP_D creates a descending heap from an indexed R8VEC.
-
R8VEC_INDEXED_HEAP_D_EXTRACT: extract from heap descending indexed R8VEC.
-
R8VEC_INDEXED_HEAP_D_INSERT: insert value into heap descending indexed R8VEC.
-
R8VEC_INDEXED_HEAP_D_MAX: maximum value in heap descending indexed R8VEC.
-
R8VEC_INDICATOR0 sets an R8VEC to the indicator vector {0,1,2,...}.
-
R8VEC_INDICATOR0_NEW sets an R8VEC to the indicator vector {0,1,2,...}.
-
R8VEC_INDICATOR1 sets an R8VEC to the indicator vector {1,2,3,...}.
-
R8VEC_INDICATOR1_NEW sets an R8VEC to the indicator vector {1,2,3,...}.
-
R8VEC_INSERT inserts a value into an R8VEC.
-
R8VEC_IS_ASCENDING determines if an R8VEC is (weakly) ascending.
-
R8VEC_IS_ASCENDING_STRICTLY determines if an R8VEC is strictly ascending.
-
R8VEC_IS_BINARY is true if the entries in an R8VEC are all 0 or 1.
-
R8VEC_IS_DISTINCT is true if the entries in an R8VEC are distinct.
-
R8VEC_IN_01 is TRUE if the entries of an R8VEC are in the range [0,1].
-
R8VEC_IS_IN_AB is TRUE if the entries of an R8VEC are in the range [A,B].
-
R8VEC_IS_INSIGNIFICANT determines if an R8VEC is insignificant.
-
R8VEC_IS_INTEGER is TRUE if an R8VEC is integral.
-
R8VEC_NEGATIVE_STRICT: all entries of R8VEC are strictly negative.
-
R8VEC_IS_NEGATIVE_ANY: ( any A < 0 ) for R8VEC's.
-
R8VEC_IS_NONNEGATIVE is true if all entries in an R8VEC are nonnegative.
-
R8VEC_IS_NONPOSITIVE: ( all ( A <= 0 ) ) for R8VEC's.
-
R8VEC_IS_NONZERO_ANY: TRUE if an R8VEC has any nonzero entry.
-
R8VEC_IS_ONE is true if the entries in an R8VEC are all 1.
-
R8VEC_IS_POSITIVE: all entries of R8VEC are strictly positive.
-
R8VEC_IS_ZERO is true if the entries in an R8VEC are all zero.
-
R8VEC_LEGENDRE_NEW creates a vector of Chebyshev spaced values.
-
R8VEC_LINSPACE creates a vector of linearly spaced values.
-
R8VEC_LINSPACE_NEW creates a vector of linearly spaced values.
-
R8VEC_LINSPACE2_NEW creates a vector of linearly spaced values.
-
R8VEC_LT == ( A1 < A2 ) for two R8VEC's.
-
R8VEC_MASK_PRINT prints a masked R8VEC.
-
R8VEC_MAX returns the value of the maximum element in a R8VEC.
-
R8VEC_MAX_ABS_INDEX returns the index of the maximum absolute value in an R8VEC.
-
R8VEC_MAX_INDEX returns the index of the maximum value in an R8VEC.
-
R8VEC_MEAN returns the mean of a R8VEC.
-
R8VEC_MEAN_GEOMETRIC returns the geometric mean of a R8VEC.
-
R8VEC_MEAN_RUNNING computes the running means of an R8VEC.
-
R8VEC_MEAN_UPDATE updates the mean of an R8VEC with one new value.
-
R8VEC_MEDIAN returns the median of an unsorted R8VEC.
-
R8VEC_MESH_2D creates a 2D mesh from X and Y vectors.
-
R8VEC_MIDSPACE_NEW creates a vector of linearly spaced values.
-
R8VEC_MIN returns the value of the minimum element in a R8VEC.
-
R8VEC_MIN_INDEX returns the index of the minimum value in an R8VEC.
-
R8VEC_MIN_POS returns the minimum positive value of an R8VEC.
-
R8VEC_MIRROR_NEXT steps through all sign variations of an R8VEC.
-
R8VEC_MIRROR_AB_NEXT steps through "mirrored" versions of vector X.
-
R8VEC_MM_TO_01 shifts and rescales data to lie within [0,1].
-
R8VEC_MM_TO_CD shifts and rescales data to lie within a given pair of bounds.
-
R8VEC_NINT rounds the entries of an R8VEC.
-
R8VEC_NINT_NEW rounds the entries of an R8VEC.
-
R8VEC_NORM returns the L2 norm of an R8VEC.
-
R8VEC_NORM_AFFINE returns the affine L2 norm of an R8VEC.
-
R8VEC_NORM_L0 returns the l0 "norm" of an R8VEC.
-
R8VEC_NORM_L1 returns the L1 norm of an R8VEC.
-
R8VEC_NORM_L2 returns the L2 norm of an R8VEC.
-
R8VEC_NORM_LI returns the L-oo norm of an R8VEC.
-
R8VEC_NORM_LP returns the LP norm of an R8VEC.
-
R8VEC_NORM_RMS returns the RMS norm of an R8VEC.
-
R8VEC_NORMAL_01 returns a unit pseudonormal R8VEC.
-
R8VEC_NORMAL_01_NEW returns a unit pseudonormal R8VEC.
-
R8VEC_NORMAL_AB returns a scaled pseudonormal R8VEC.
-
R8VEC_NORMAL_AB_NEW returns a scaled pseudonormal R8VEC.
-
R8VEC_NORMALIZE normalizes an R8VEC.
-
R8VEC_NORMALIZE_L1 normalizes an R8VEC to have unit sum.
-
R8VEC_NORMSQ returns the squared L2 norm of an R8VEC.
-
R8VEC_NORMSQ_AFFINE returns the sqaured affine L2 norm of an R8VEC.
-
R8VEC_ONES_NEW creates a vector of 1's.
-
R8VEC_ORDER_TYPE determines if an R8VEC is (non)strictly ascending/descending.
-
R8VEC_PART_QUICK_A reorders an R8VEC as part of a quick sort.
-
R8VEC_PERMUTE applies a 0-based permutation to an R8VEC.
-
R8VEC_PERMUTE_CYCLIC performs a cyclic permutation of an R8VEC.
-
R8VEC_PERMUTE_UNIFORM randomly permutes an R8VEC.
-
R8VEC_POLARIZE decomposes an R8VEC into normal and parallel components.
-
R8VEC_PRINT prints an R8VEC.
-
R8VEC_PRINT_16 prints an R8VEC to 16 decimal places.
-
R8VEC_PRINT_PART prints "part" of an R8VEC.
-
R8VEC_PRINT_SOME prints "some" of an R8VEC.
-
R8VEC_PRODUCT returns the product of the entries of an R8VEC.
-
R8VEC_RANGE finds the range of Y's within a restricted X range.
-
R8VEC_RANGE_2 updates a range to include a new R8VEC
-
R8VEC_REVERSE reverses the elements of an R8VEC.
-
R8VEC_ROTATE "rotates" the entries of an R8VEC in place.
-
R8VEC_SCALAR_TRIPLE_PRODUCT computes the scalar triple product.
-
R8VEC_SCALE multiplies an R8VEC by a scale factor.
-
R8VEC_SEARCH_BINARY_A searches an ascending sorted R8VEC.
-
R8VEC_SHIFT performs a shift on an R8VEC.
-
R8VEC_SHIFT_CIRCULAR performs a circular shift on an R8VEC.
-
R8VEC_SIGN3_RUNNING computes the running threeway sign of an R8VEC.
-
R8VEC_SOFTMAX evaluates the SOFTMAX function.
-
R8VEC_SORT_BUBBLE_A ascending sorts an R8VEC using bubble sort.
-
R8VEC_SORT_BUBBLE_D descending sorts an R8VEC using bubble sort.
-
R8VEC_SORT_HEAP_A ascending sorts an R8VEC using heap sort.
-
R8VEC_SORT_HEAP_D descending sorts an R8VEC using heap sort.
-
R8VEC_SORT_HEAP_INDEX_A does an indexed heap ascending sort of an R8VEC
-
R8VEC_SORT_HEAP_INDEX_A_NEW does an indexed heap ascending sort of an R8VEC
-
R8VEC_SORT_HEAP_INDEX_D does an indexed heap descending sort of an R8VEC.
-
R8VEC_SORT_HEAP_INDEX_D_NEW does an indexed heap descending sort of an R8VEC.
-
R8VEC_SORT_HEAP_MASK_A: indexed heap ascending sort of a masked R8VEC.
-
R8VEC_SORT_INSERT_A ascending sorts an R8VEC using an insertion sort.
-
R8VEC_SORT_INSERT_INDEX_A ascending index sorts an R8VEC using insertion.
-
R8VEC_SORT_QUICK_A ascending sorts an R8VEC using quick sort.
-
R8VEC_SORT_SHELL_A ascending sorts an R8VEC using Shell's sort.
-
R8VEC_SORTED_MERGE_A merges two ascending sorted R8VEC's.
-
R8VEC_SORTED_NEAREST returns the nearest element in a sorted R8VEC.
-
R8VEC_SORTED_RANGE searches a sorted vector for elements in a range.
-
R8VEC_SORTED_SPLIT "splits" a sorted R8VEC, given a splitting value.
-
R8VEC_SORTED_UNDEX returns unique sorted indexes for a sorted R8VEC.
-
R8VEC_SORTED_UNIQUE finds the unique elements in a sorted R8VEC.
-
R8VEC_SORTED_UNIQUE_COUNT counts unique elements in a sorted R8VEC.
-
R8VEC_SORTED_UNIQUE_HIST histograms unique elements of a sorted R8VEC.
-
R8VEC_SPLIT "splits" an unsorted R8VEC based on a splitting value.
-
R8VEC_STANDARDIZE standarizes an R8VEC.
-
R8VEC_STD returns the standard deviation of an R8VEC.
-
R8VEC_STD_SAMPLE returns the sample standard deviation of an R8VEC.
-
R8VEC_STD_UPDATE updates standard deviation of an R8VEC with one new value.
-
R8VEC_STEP evaluates a unit step function.
-
R8VEC_STUTTER makes a "stuttering" copy of an R8VEC.
-
R8VEC_STUTTER_NEW makes a "stuttering" copy of an R8VEC.
-
R8VEC_SUM returns the sum of an R8VEC.
-
R8VEC_SUM_RUNNING computes the running sum of an R8VEC.
-
R8VEC_SWAP swaps the entries of two R8VEC's.
-
R8VEC_TRANSPOSE_PRINT prints an R8VEC "transposed".
-
R8VEC_UNDEX returns unique sorted indexes for an R8VEC.
-
R8VEC_UNIFORM_01 returns a unit pseudorandom R8VEC.
-
R8VEC_UNIFORM_01_NEW returns a unit pseudorandom R8VEC.
-
R8VEC_UNIFORM_AB returns a scaled pseudorandom R8VEC.
-
R8VEC_UNIFORM_AB_NEW returns a scaled pseudorandom R8VEC.
-
R8VEC_UNIFORM_ABVEC returns a scaled pseudorandom R8VEC.
-
R8VEC_UNIFORM_ABVEC_NEW returns a scaled pseudorandom R8VEC.
-
R8VEC_UNIFORM_UNIT_NEW generates a random unit vector.
-
R8VEC_UNIQUE_COUNT counts the unique elements in an unsorted R8VEC.
-
R8VEC_UNIQUE_INDEX indexes the unique occurrence of values in an R8VEC.
-
R8VEC_VARIANCE returns the variance of an R8VEC.
-
R8VEC_VARIANCE_CIRCULAR returns the circular variance of an R8VEC.
-
R8VEC_VARIANCE_SAMPLE returns the sample variance of an R8VEC.
-
R8VEC_VARIANCE_UPDATE updates the variance of an R8VEC with one new value.
-
R8VEC_VECTOR_TRIPLE_PRODUCT computes the vector triple product.
-
R8VEC_WRITE writes an R8VEC to a file.
-
R8VEC_ZEROS zeroes an R8VEC.
-
R8VEC_ZEROS_NEW creates and zeroes an R8VEC.
-
R8VEC2_COMPARE compares two elements of an R8VEC2.
-
R8VEC2_PRINT prints an R8VEC2.
-
R8VEC2_PRINT_SOME prints "some" of an R8VEC2.
-
R8VEC2_SORT_A ascending sorts an R8VEC2.
-
R8VEC2_SORT_D descending sorts an R8VEC2.
-
R8VEC2_SORT_HEAP_INDEX_A does an indexed heap ascending sort of an R8VEC2.
-
R8VEC2_SORTED_UNIQUE keeps the unique elements in an R8VEC2.
-
R8VEC2_SORTED_UNIQUE_INDEX indexes unique elements in a sorted R8VEC2.
-
R8VEC2_SUM_MAX_INDEX returns the index of the maximum sum of two R8VEC's.
-
R8VEC3_PRINT prints a triple of real vectors.
-
S_LEN_TRIM returns the length of a string to the last nonblank.
-
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 05 October 2018.