SUBPAK - A Utility Library
SUBPAK is a collection of FORTRAN utility routines for
a variety of tasks, including the greatest common divisor of two
integers, searching, sorting, range, and unique elements of vectors,
determinants and inverses of small matrices, and all the primes
less than 10,000.
Files you may copy include:
The list of routines includes:
-
ACOSH2 returns the inverse hyperbolic cosine of a number.
-
AGUD evaluates the inverse Gudermannian function.
-
ARC_COSINE computes the arc cosine function, with argument truncation.
-
ASINH2 returns the inverse hyperbolic sine of a number.
-
ATAN4 computes the inverse tangent of the ratio Y / X.
-
ATANH2 returns the inverse hyperbolic tangent of a number.
-
AXIS_LIMITS returns "nice" axis limits for a plot.
-
BAR_CHECK computes the check digit for a barcode.
-
BAR_CODE constructs the 113 character barcode from 11 digits.
-
BAR_DIGIT_CODE returns the 7 character right and left bar codes for a digit.
-
BIN_SEARCH_ONE_2D searches one cell in a 2D array of bins.
-
BIN_TO_R2_EVEN returns the limits for a given R2 "bin" in [A,B].
-
BIN_TO_R2_EVEN2 returns the limits for a given R2 "bin" in [A,B].
-
BIN_TO_R2_EVEN3 returns the limits for a given R2 "bin" in [A,B].
-
BIN_TO_R3_EVEN2 returns the limits for a given R3 "bin" in [A,B].
-
BIN_TO_R3_EVEN3 returns the limits for a given R3 "bin" in [A,B].
-
BIN_TO_R_EVEN returns the limits for a given "bin" in [A,B].
-
BIN_TO_R_EVEN2 returns the limits for a given "bin" in [A,B].
-
BIN_TO_RVEC_EVEN3 returns the limits for a given RVEC "bin" in [A,B].
-
BMI_ENGLISH computes the body mass index given English measurements.
-
BMI_METRIC computes the body mass index given metric measurements.
-
C_CUBE_ROOT returns the principal cube root of a complex number.
-
C_LE_L1 := X <= Y for complex values, and the L1 norm.
-
C_LE_L2 := X <= Y for complex values, and the L2 norm.
-
C_LE_LINF := X <= Y for complex values, and the L Infinity norm.
-
C_NORM1 evaluates the L1 norm of a complex number.
-
C_NORM2 evaluates the L2 norm of a complex number.
-
C_NORMI evaluates the L-infinity norm of a complex number.
-
C_SWAP swaps two complex values.
-
CH_CAP capitalizes a single character.
-
CH_IS_DIGIT returns .TRUE. if a character is a decimal digit.
-
CH_IS_PRINTABLE determines if a character is printable.
-
CH_RANDOM returns a random character in a given range.
-
CH_SWAP swaps two character values.
-
CHVEC2_PRINT prints two vectors of characters.
-
CHVEC_PERMUTE permutes a character vector in place.
-
CHVEC_PRINT prints a character vector.
-
CHVEC_REVERSE reverses the elements of a character vector.
-
CMAT_PRINT prints a complex matrix.
-
COT returns the cotangent of an angle.
-
COTD returns the cotangent of an angle given in degrees.
-
CSC returns the cosecant of X.
-
CVEC_IDENTITY sets a complex vector to a sort of identity vector.
-
CVEC_PRINT prints a complex vector, with an optional title.
-
CVEC_PRINT_SOME prints some of a complex vector.
-
CVEC_RANDOM returns a random complex vector in a given range.
-
CVEC_SORT_A1 ascending sorts a complex array by L1 norm.
-
CVEC_SORT_A2 ascending sorts a complex array by L2 norm.
-
CVEC_SORT_AINF ascending sorts a complex array by L infinity norm.
-
CVEC_UNITY returns the N roots of unity.
-
D_PI returns the value of pi as a double precision quantity.
-
D_RANDOM returns a random double precision value in a given range.
-
D_SWAP swaps two double precision values.
-
DVEC_IDENTITY sets a double precision vector to the identity vector A(I)=I.
-
DVEC_PRINT prints a double precision vector.
-
DVEC_PRINT_SOME prints "some" of a double precision vector.
-
DVEC_RANDOM returns a random double precision vector in a given range.
-
E_CONSTANT returns the value of E.
-
ERF evaluates the error function ERF(X).
-
EULER_CONSTANT returns the value of the Euler-Mascheroni constant.
-
FAC_DIV divides two quantities represented as prime factors.
-
FAC_GCD finds the GCD of two products of prime factors.
-
FAC_LCM finds the LCM of two products of prime factors.
-
FAC_MUL multiplies two quantities represented as prime factors.
-
FAC_PRINT prints a product of prime factors.
-
FAC_TO_I converts a product of prime factors into an integer.
-
FAC_TO_RAT converts a prime factorization into a rational value.
-
FEET_TO_METERS converts a measurement in feet to meters.
-
FGAUSS evaluates a function that is the sum of Gaussians.
-
GET_SEED returns a seed for the random number generator.
-
GRID1 finds grid points between X1 and X2 in N dimensions.
-
GRID1N finds the I-th grid point between X1 and X2 in N dimensions.
-
GRID2 computes grid points between X1 and X2 in N dimensions.
-
GRID2N computes one grid point between X1 and X2 in N dimensions.
-
GRID3 computes a grid on the parallelogram set by X1, X2 and X3 in N space.
-
GRID3N computes a parallelogram grid on 3 points in N dimensions.
-
GRID4 computes a grid on the parallelogram set by X1, X2 and X3 in N space.
-
GRID4N computes a single point on a parallelogram grid in N space.
-
GUD evaluates the Gudermannian function.
-
HEXCOL returns a color on the perimeter of the color hexagon.
-
I2VEC_PRINT prints an I2 vector.
-
I_CHARACTERISTIC gives the characteristic for an integer.
-
I_DIVP returns the smallest multiple of J greater than or equal to I.
-
I_FACTOR factors an integer into prime factors.
-
I_GCD finds the greatest common divisor of I and J.
-
I_GCDB finds the greatest common divisor of the form K**N of two numbers.
-
I_IS_POWER_OF_2 reports whether an integer is a power of 2.
-
I_IS_PRIME reports whether an integer is prime.
-
I_JACOBI_SYMBOL evaluates the Jacobi symbol (Q/P).
-
I_LCM computes the least common multiple of two integers.
-
I_LEGENDRE_SYMBOL evaluates the Legendre symbol (Q/P).
-
I_LOG_10 returns the logarithm base 10 of ABS(X).
-
I_LOG_2 returns the logarithm base 2 of ABS(X).
-
I_LOG_B returns the logarithm base B of ABS(X).
-
I_LOG_INT_10 returns the integer part of the logarithm base 10 of ABS(X).
-
I_LOG_INT_2 returns the integer part of the logarithm base 2 of ABS(X).
-
I_LOG_INT_B returns the integer part of the logarithm base ABS(B) of ABS(X).
-
I_MANT computes the "mantissa" of a real number.
-
I_MEMORY manages a set of runtime integer variables.
-
I_MODDIV breaks a number into a multiple of a divisor and remainder.
-
I_MODP returns the nonnegative remainder of integer division.
-
I_MOEBIUS returns the value of MU(N), the Moebius function of N.
-
I_OMEGA returns OMEGA(N), the number of distinct prime divisors of N.
-
I_PHI returns the value of PHI(N), the number of relatively prime predecessors.
-
I_POCHHAMMER returns the value of ( I * (I+1) * ... * (J-1) * J ).
-
I_RANDOM returns a random integer in a given range.
-
I_ROUNDUP rounds a real value "up" to the nearest integer.
-
I_SIGMA returns the value of SIGMA(N), the divisor sum.
-
I_SIGN evaluates the sign of an integer.
-
I_SWAP swaps two integer values.
-
I_SWAP3 swaps three integer values.
-
I_TAU returns the value of TAU(N), the number of distinct divisors of N.
-
I_TO_DIGITS_DECIMAL determines the last N decimal digits of an integer.
-
I_TO_FAC converts an integer into a product of prime factors.
-
I_TO_ISBN converts an integer to an ISBN digit.
-
I_TO_IVEC_BINARY makes a vector binary representation of an integer.
-
I_UNSWAP3 unswaps three integer values.
-
I_WRAP forces an integer to lie between given limits by wrapping.
-
ICOL_COMPARE compares columns I and J of a integer array.
-
ICOL_FIND seeks a table column equal to an integer vector.
-
ICOL_FIND_ITEM searches a table by columns for a given value.
-
ICOL_FIND_PAIR_WRAP searches a table by columns for a pair of items.
-
ICOL_SORT_A ascending sorts an integer array of columns.
-
ICOL_SORT_D descending sorts an integer array of columns.
-
ICOL_SWAP swaps columns I and J of a integer array of column data.
-
ICOL_UNIQUE keeps the unique elements in a sorted integer array of columns.
-
IINT_TO_RINT maps an integer interval to a real interval.
-
IJ_NEXT returns the next matrix index.
-
IJ_NEXT_GT returns the next matrix index, with the constraint that I < J.
-
IMAT_COPY copies a rectangular integer matrix.
-
IMAT_ELIM carries out exact Gauss elimination on an integer matrix.
-
IMAT_IMAX returns the location of the maximum of an integer M by N matrix.
-
IMAT_IMIN returns the location of the minimum of an integer M by N matrix.
-
IMAT_L1_INVERSE inverts an integer unit lower triangular matrix.
-
IMAT_MAX returns the maximum entry of an integer M by N matrix.
-
IMAT_MIN returns the minimum entry of an integer M by N matrix.
-
IMAT_PERM permutes the rows and columns of a square integer matrix.
-
IMAT_PERM2 permutes the rows and columns of a rectangular integer matrix.
-
IMAT_PERM2_RANDOM selects a random permutation of an integer matrix.
-
IMAT_PERM_RANDOM selects a random permutation of an integer matrix.
-
IMAT_PRINT prints an integer matrix.
-
IMAT_RANDOM returns a matrix of uniform random values between AHI and ALO.
-
IMAT_RED divides out common factors in a row or column of a matrix.
-
IMAT_ROW_COMPARE compares two arrays of row vectors.
-
IMAT_U1_INVERSE inverts an integer unit upper triangular matrix.
-
INDEX_BOX2_NEXT_2D produces indices on the surface of a box in 2D.
-
INDEX_BOX2_NEXT_3D produces indices on the surface of a box in 3D.
-
IROW_COMPARE compares two rows of a integer array.
-
IROW_FIND_ITEM searches the rows of an integer array for a given value.
-
IROW_FIND_PAIR_WRAP searches the rows of an integer array for a pair of items.
-
IROW_MAX returns the maximums of the rows of an integer array.
-
IROW_MEAN returns the means of the rows of an integer array.
-
IROW_MIN returns the minimums of the rows of an integer array.
-
IROW_SORT2_D descending sorts the elements of each row of an integer array.
-
IROW_SORT_A ascending sorts the rows of an integer array.
-
IROW_SORT_D descending sorts the rows of an integer array.
-
IROW_SUM returns the sums of the rows of an integer array.
-
IROW_SWAP swaps two rows of an integer array.
-
IROW_VARIANCE returns the variances of the rows of an integer array.
-
ISBN_CHECK checks an ISBN code.
-
ISBN_FILL fills in a missing digit in an ISBN code.
-
ISBN_TO_I converts an ISBN character into an integer.
-
ISET2_COMPARE compares two I2 sets.
-
ISET2_INDEX_INSERT_UNIQUE inserts a unique I2 set value in an indexed sorted list.
-
ISET2_INDEX_SEARCH searches for an I2 set value in an indexed sorted list.
-
IVEC2_COMPARE compares pairs of integers stored in two vectors.
-
IVEC2_PRINT prints a pair of integer vectors.
-
IVEC2_SORT_A ascending sorts a vector of pairs of integers.
-
IVEC2_SORT_D descending sorts a vector of pairs of integers.
-
IVEC2_UNIQUE keeps the unique elements in a array of pairs of integers.
-
IVEC_AMAX returns the largest magnitude in an integer vector.
-
IVEC_AMIN returns the smallest magnitude in an integer vector.
-
IVEC_AMINZ returns the smallest nonzero magnitude in an integer vector.
-
IVEC_ASCEND_SUB computes the longest ascending subsequence of vector.
-
IVEC_ASCENDS determines if an integer vector is (weakly) ascending.
-
IVEC_AXPY: Y(I) := Y(I) + A * X(I).
-
IVEC_BRACKET searches a sorted array for successive brackets of a value.
-
IVEC_COMPARE compares two integer vectors.
-
IVEC_CUM computes the cumulutive sum of the entries of a vector.
-
IVEC_DESCENDS determines if an integer vector is decreasing.
-
IVEC_FRAC searches for the K-th smallest element in an N-vector.
-
IVEC_GCD finds the greatest common divisor of an integer vector.
-
IVEC_HEAP_A reorders an array of integers into an ascending heap.
-
IVEC_HEAP_D reorders an array of integers into an descending heap.
-
IVEC_HEAP_D_EXTRACT extracts the maximum value from a descending heap.
-
IVEC_HEAP_D_INSERT inserts a new value into a descending heap.
-
IVEC_HEAP_D_MAX returns the maximum value in a descending heap of integers.
-
IVEC_IAMAX returns the index of the largest magnitude in an integer vector.
-
IVEC_IAMIN returns the index of the smallest magnitude in an integer vector.
-
IVEC_IAMINZ returns the smallest nonzero magnitude in an integer vector.
-
IVEC_IDENTITY sets an integer vector to the identity vector A(I)=I.
-
IVEC_IMAX computes the index of a maximum element of an integer array.
-
IVEC_IMAX_LAST returns the index of the last maximal integer vector element.
-
IVEC_IMIN computes the index of the minimum element of an integer array.
-
IVEC_INDEX returns the location of the first occurrence of a given value.
-
IVEC_INDEX_DELETE_ALL deletes all occurrences of an integer value from an indexed sorted list.
-
IVEC_INDEX_DELETE_DUPES deletes duplicate integer values from an indexed sorted list.
-
IVEC_INDEX_DELETE_ONE deletes one copy of an integer value from an indexed sorted list.
-
IVEC_INDEX_INSERT inserts an integer value in an indexed sorted list.
-
IVEC_INDEX_INSERT_UNIQUE inserts a unique integer value in an indexed sorted list.
-
IVEC_INDEX_ORDER sorts an integer vector using an index vector.
-
IVEC_INDEX_SEARCH searches for an integer value in an indexed sorted list.
-
IVEC_INDEX_SORT_UNIQUE creates a sort index for an integer vector.
-
IVEC_INSERT inserts a value into an array.
-
IVEC_MASK_PRINT prints an integer masked vector.
-
IVEC_MAX computes the maximum element of an integer array.
-
IVEC_MEAN returns the mean of an integer vector.
-
IVEC_MEDIAN returns the median of an unsorted integer vector.
-
IVEC_MERGE_A merges two ascending sorted integer arrays.
-
IVEC_MIN computes the minimum element of an integer array.
-
IVEC_NONZERO counts the nonzero entries in an integer vector
-
IVEC_ORDER_TYPE determines if an integer array is (non)strictly ascending/descending.
-
IVEC_PAIRWISE_PRIME checks whether a vector of integers is pairwise prime.
-
IVEC_PART partitions an integer NVAL into N nearly equal parts.
-
IVEC_PART_QUICK_A reorders an integer vector as part of a quick sort.
-
IVEC_PERMUTE permutes an integer vector in place.
-
IVEC_PERMUTE_RANDOM randomly permutes an integer vector.
-
IVEC_POP pops an integer vector off of a stack.
-
IVEC_PRINT prints an integer vector.
-
IVEC_PRINT_SOME prints "some" of an integer vector.
-
IVEC_PUSH pushes an integer vector onto a stack.
-
IVEC_RANDOM returns a random integer vector in a given range.
-
IVEC_RED divides out common factors in a vector.
-
IVEC_REVERSE reverses the elements of an integer vector.
-
IVEC_ROTATE rotates an object in place.
-
IVEC_SEARCH_BINARY_A searches an ascending sorted vector of integers.
-
IVEC_SEARCH_BINARY_D searches a descending sorted vector of integers.
-
IVEC_SORT_BUBBLE_A ascending sorts an integer array using bubble sort.
-
IVEC_SORT_BUBBLE_D descending sorts an integer array using bubble sort.
-
IVEC_SORT_HEAP_A ascending sorts an integer array using heap sort.
-
IVEC_SORT_HEAP_D descending sorts an integer array using heap sort.
-
IVEC_SORT_HEAP_INDEX_A does an indexed heap ascending sort of an integer vector.
-
IVEC_SORT_HEAP_INDEX_D does an indexed heap descending sort of an integer vector.
-
IVEC_SORT_INSERT_A uses an ascending insertion sort on an integer vector.
-
IVEC_SORT_INSERT_D uses a descending insertion sort on an integer vector.
-
IVEC_SORT_QUICK_A ascending sorts an integer vector using quick sort.
-
IVEC_SORT_SHELL_A ascending sorts an integer array using Shell's sort.
-
IVEC_SPLIT_UNSORT "splits" an unsorted vector based on a splitting value.
-
IVEC_SWAP swaps the entries of two integer vectors.
-
IVEC_UNIQUE finds the number of unique elements in a sorted integer array.
-
IVEC_VALUE_INDEX indexes integer vector entries equal to a given value.
-
IVEC_VARIANCE returns the variance of an integer vector.
-
L_MEMORY manages a set of runtime logical variables.
-
LCM_12n computes the least common multiple of the integers 1 through N.
-
NORMAL_01_SAMPLE samples the standard normal probability distribution.
-
NORMAL_01_VECTOR samples the standard normal probability distribution.
-
PAUSE_INPUT waits until an input character is entered.
-
PERM_CHECK checks that a vector represents a permutation.
-
PERM_CYCLE analyzes a permutation.
-
PERM_FREE reports the number of unused items in a partial permutation.
-
PERM_NEXT computes all of the permutations on N objects, one at a time.
-
PERM_PRINT prints a permutation.
-
PERM_RANDOM selects a random permutation of N objects.
-
POUNDS_TO_KILOGRAMS converts a measurement in pounds to kilograms.
-
PRIME returns any of the first MAXPRIME prime numbers.
-
PRIMER computes the prime numbers up to a given limit.
-
R2_CHEBY sets up the Chebyshev abscissas in a real interval.
-
R2_EQ == ( A1 == A2 ) for R2 vectors.
-
R2_GE == ( A1 >= A2 ) for R2 vectors.
-
R2_GT == ( A1 > A2 ) for R2 vectors.
-
R2_LE == ( A1 <= A2 ) for R2 vectors.
-
R2_LT == ( A1 < A2 ) for R2 vectors.
-
R2_NE == ( A1 /= A2 ) for R2 vectors.
-
R2_RANDOM returns a random R2 value in a given range.
-
R2_SWAP swaps two R2 values.
-
R2_TO_BIN_EVEN determines the appropriate "bin" for an R2 value.
-
R2_TO_BIN_EVEN2 determines the appropriate "bin" for an R2 value.
-
R2_TO_BIN_EVEN3 determines the appropriate "bin" for an R2 value.
-
R2POLY2_PRINT prints a second order polynomial in two variables.
-
R2POLY2_TYPE analyzes a second order polynomial in two variables.
-
R2POLY2_TYPE_PRINT prints the meaning of the output from R2POLY2_TYPE.
-
R2VEC_BIN_EVEN bins an R2 array into evenly spaced bins.
-
R2VEC_BIN_EVEN2 bins an R2 array into evenly spaced bins.
-
R2VEC_BIN_EVEN3 bins an R2 array into evenly spaced bins.
-
R2VEC_BINNED_REORDER reorders a binned R2 data vector.
-
R2VEC_BINNED_REORDER2 reorders a binned R2 data vector.
-
R2VEC_BINNED_SORT_A sorts each bin of an R2 binned data vector.
-
R2VEC_BINNED_SORT_A2 sorts each bin of an R2 binned data vector.
-
R2VEC_PART_QUICK_A reorders an R2 vector as part of a quick sort.
-
R2VEC_PRINT prints an R2 vector.
-
R2VEC_RANDOM returns a random R2 vector in a given range.
-
R2VEC_SORT_QUICK_A ascending sorts an R2 vector using quick sort.
-
R3_EQ == ( A1 == A2 ) for R3 vectors.
-
R3_GT == ( A1 > A2 ) for R3 vectors.
-
R3_LT == ( A1 < A2 ) for R3 vectors.
-
R3_SWAP swaps two R3 values.
-
R3_TO_BIN_EVEN2 determines the appropriate "bin" for an R3 value.
-
R3_TO_BIN_EVEN3 determines the appropriate "bin" for an R3 value.
-
R3VEC_BIN_EVEN2 bins an R3 array into evenly spaced bins.
-
R3VEC_BIN_EVEN3 bins an R3 array into evenly spaced bins.
-
R3VEC_BINNED_REORDER reorders a binned R3 data vector.
-
R3VEC_BINNED_REORDER2 reorders a binned R3 data vector.
-
R3VEC_BINNED_SORT_A sorts each bin of an R3 binned data vector.
-
R3VEC_BINNED_SORT_A2 sorts each bin of an R3 binned data vector.
-
R3VEC_PART_QUICK_A reorders an R3 vector as part of a quick sort.
-
R3VEC_RANDOM returns a random R3 vector in a given range.
-
R3VEC_SORT_QUICK_A ascending sorts an R3 vector using quick sort.
-
R_CAS returns the "casine" of a number.
-
R_CHOP chops a real number to a given number of binary places.
-
R_CUBE_ROOT returns the cube root of a real number.
-
R_DIFF computes (X-Y) to a specified accuracy.
-
R_DIGIT returns a particular decimal digit of a real number.
-
R_INF returns a real number set to "Inf".
-
R_IS_INT determines if a real number represents an integer value.
-
R_LOG_2 returns the logarithm base 2 of the absolute value of a real number.
-
R_LOG_B returns the logarithm base B of the absolute value of a real number.
-
R_LOG_INT_10 returns the integer part of the logarithm base 10 of ABS(X).
-
R_LOG_INT_2 returns the integer part of the logarithm base 2 of ABS(X).
-
R_LOG_INT_B returns the integer part of the logarithm base ABS(B) of ABS(X).
-
R_MANT computes the "mantissa" or "fraction part" of X.
-
R_MEMORY manages a set of runtime real variables.
-
R_MODP returns the nonnegative remainder of real division.
-
R_NAN returns a real number set to "NaN".
-
R_PI returns the value of pi.
-
R_POWER computes the P-th power of R, for real R and integer P.
-
R_RANDOM returns a random real in a given range.
-
R_ROUND2 rounds a number to a specified number of binary digits.
-
R_ROUNDB rounds a number to a given number of digits in a given base.
-
R_ROUNDX rounds a real number to a specified number of decimal digits.
-
R_SIGN evaluates the sign of a real argument.
-
R_SWAP swaps two real values.
-
R_SWAP3 swaps three real items.
-
R_TO_BIN_EVEN determines the appropriate "bin" for C in [A,B].
-
R_TO_BIN_EVEN2 determines the appropriate "bin" for C in [A,B].
-
R_TO_BIN_UNEVEN places X in one of several unevenly spaced bins.
-
R_TO_DHMS converts a real number of days into days, hours, minutes, seconds.
-
R_TO_R_DISCRETE maps real X to XD in [XDMIN, XDMAX] with NDX possible values.
-
R_UNSWAP3 unswaps three real items.
-
R_ZETA estimates the Riemann Zeta function.
-
RANDOM_INITIALIZE initializes the FORTRAN 90 random number seed.
-
RAT_FACTOR factors a rational value into a product of prime factors.
-
RBLOCK_EXPAND_LINEAR linearly interpolates new data into a 3D block.
-
RBLOCK_PRINT prints a real block (a 3D matrix).
-
RCOL_COMPARE compares columns I and J of a real array of column data.
-
RCOL_FIND seeks a table column equal to a real vector.
-
RCOL_INSERT inserts a column into a sorted table, if it is new.
-
RCOL_MAX returns the maximums of columns of a real array.
-
RCOL_MEAN returns the means of columns of a real array.
-
RCOL_MIN returns the minimums of columns of a real array.
-
RCOL_PART_QUICK_A reorders the columns of an array as part of a quick sort.
-
RCOL_SORT_HEAP_A uses heap sort to ascending sort a real array of columns.
-
RCOL_SORT_QUICK_A ascending sorts the columns of a table using quick sort.
-
RCOL_SORTR_A ascending sorts one column of a 2D array, adjusting all entries.
-
RCOL_SUM sums the entries of columns of a real array.
-
RCOL_SWAP swaps columns I and J of a real array of column data.
-
RCOL_TO_RVEC converts a matrix of columns into a vector.
-
RCOL_UNIQUE keeps only the unique elements in a sorted real array of columns.
-
RCOL_VARIANCE returns the variances of the columns of a real array.
-
RINT_TO_IINT maps a real interval to an integer interval.
-
RINT_TO_RINT maps a real interval to another real interval.
-
RMAT_AAT computes the normal matrix A*A'.
-
RMAT_ATA computes the normal matrix A'*A.
-
RMAT_CHOLESKY_FACTOR computes the Cholesky factor of a symmetric matrix.
-
RMAT_CHOLESKY_SOLVE solves a Cholesky factored linear system A * x = b.
-
RMAT_DET_2D computes the determinant of a 2 by 2 matrix.
-
RMAT_DET_3D computes the determinant of a 3 by 3 matrix.
-
RMAT_DET_4D computes the determinant of a 4 by 4 matrix.
-
RMAT_DET_5D computes the determinant of a 5 by 5 matrix.
-
RMAT_DIAG_ADD_SCALAR adds a scalar to the diagonal of a matrix.
-
RMAT_DIAG_ADD_VECTOR adds a vector to the diagonal of a matrix.
-
RMAT_DIAG_GET_VECTOR gets the value of the diagonal of a matrix.
-
RMAT_DIAG_SET_SCALAR sets the diagonal of a matrix to a scalar value.
-
RMAT_DIAG_SET_VECTOR sets the diagonal of a matrix to a vector.
-
RMAT_EXPAND_LINEAR linearly interpolates new data into a matrix.
-
RMAT_EXPAND_LINEAR2 expands a real array by linear interpolation.
-
RMAT_GIVENS_POST computes the Givens postmultiplier rotation matrix G(IROW,JCOL).
-
RMAT_GIVENS_PRE computes the Givens premultiplier rotation matrix G(IROW,JCOL).
-
RMAT_HOUSE_AXH computes A*H where H is a compact Householder matrix.
-
RMAT_HOUSE_FORM constructs a Householder matrix from its compact form.
-
RMAT_HOUSE_HXA computes H*A where H is a compact Householder matrix.
-
RMAT_HOUSE_POST computes a Householder post-multiplier matrix.
-
RMAT_HOUSE_PRE computes a Householder pre-multiplier matrix.
-
RMAT_IDENTITY sets the square matrix A to the identity.
-
RMAT_IMAX returns the location of the maximum of a real M by N matrix.
-
RMAT_IMIN returns the location of the minimum of a real M by N matrix.
-
RMAT_INVERSE_2D inverts a 2 by 2 real matrix using Cramer's rule.
-
RMAT_INVERSE_3D inverts a 3 by 3 real matrix using Cramer's rule.
-
RMAT_INVERSE_4D inverts a 4 by 4 real matrix using Cramer's rule.
-
RMAT_L1_INVERSE inverts a real unit lower triangular matrix.
-
RMAT_L_INVERSE inverts a real lower triangular matrix.
-
RMAT_L_SOLVE solves a lower triangular linear system.
-
RMAT_LT_SOLVE solves a transposed lower triangular linear system.
-
RMAT_LU computes the LU factorization of a rectangular matrix.
-
RMAT_MAT_MULT computes a simple matrix*matrix product C = A*B.
-
RMAT_MAT_MULT2 computes the general matrix*matrix product C = A*B.
-
RMAT_MAX returns the maximum entry of a real M by N matrix.
-
RMAT_MAXCOL_MINROW returns the maximum column minimum row of an M by N matrix.
-
RMAT_MAXROW_MINCOL returns the maximum row minimum column of an M by N matrix.
-
RMAT_MIN returns the minimum entry of an M by N matrix.
-
RMAT_MINCOL_MAXROW returns the minimum column maximum row of an M by N matrix.
-
RMAT_MINROW_MAXCOL returns the minimum row maximum column of an M by N matrix.
-
RMAT_MTV multiplies a transposed matrix times a vector
-
RMAT_MV multiplies a matrix times a vector.
-
RMAT_NORM1 returns the matrix 1-norm of an M by N matrix.
-
RMAT_NORM2 returns the matrix 2-norm of an M by N matrix.
-
RMAT_NORME returns the EISPACK norm of an M by N matrix.
-
RMAT_NORMF returns the Frobenius norm of an M by N matrix.
-
RMAT_NORMI returns the matrix infinity-norm of an M by N matrix.
-
RMAT_ORTH_RANDOM returns a random orthogonal matrix.
-
RMAT_POLY_CHAR computes the characteristic polynomial of a matrix.
-
RMAT_POWER computes A**NPOW, the nonnegative power of a real square matrix.
-
RMAT_POWER_METHOD applies the power method to a matrix.
-
RMAT_PRINT prints a real matrix.
-
RMAT_PRINT2 prints out the M by N matrix A.
-
RMAT_PRINT_SOME prints out a portion of a dense matrix.
-
RMAT_RANDOM returns a matrix of uniform random values between AHI and ALO.
-
RMAT_SOLVE uses Gauss-Jordan elimination to solve an N by N linear system.
-
RMAT_SYMM_JACOBI applies the Jacobi eigenvalue iteration to a symmetric matrix.
-
RMAT_SYMM_RANDOM returns a "random" symmetric matrix with given eigenvalues.
-
RMAT_TRACE computes the trace of a real matrix.
-
RMAT_TRANSPOSE transposes a real matrix.
-
RMAT_U1_INVERSE inverts a real unit upper triangular matrix.
-
RMAT_U_INVERSE inverts a real upper triangular matrix.
-
RMAT_VAND2 returns the N by N row Vandermonde matrix A.
-
ROOTS_TO_IPOLY converts polynomial roots to polynomial coefficients.
-
ROOTS_TO_RPOLY converts polynomial roots to polynomial coefficients.
-
RPOLY2_EX finds the extremal point of a parabola determined by three points.
-
RPOLY2_EX2 finds the extremal point of a parabola determined by three points.
-
RPOLY2_ROOT returns the two roots of a quadratic polynomial.
-
RPOLY2_RROOT returns the real parts of the roots of a quadratic polynomial.
-
RPOLY2_VAL evaluates a parabola defined by three data values.
-
RPOLY2_VAL2 evaluates a parabolic interpolant through tabular data.
-
RPOLY3_ROOT returns the three roots of a cubic polynomial.
-
RPOLY4_ROOT returns the four roots of a quartic polynomial.
-
RPOLY_DEGREE returns the degree of a polynomial.
-
RPOLY_DERIV returns the derivative of a polynomial.
-
RPOLY_LAGRANGE_0 evaluates the Lagrange factor at a point.
-
RPOLY_LAGRANGE_1 evaluates the first derivative of the Lagrange factor.
-
RPOLY_LAGRANGE_2 evaluates the second derivative of the Lagrange factor.
-
RPOLY_LAGRANGE_COEF returns the coefficients of a Lagrange polynomial.
-
RPOLY_LAGRANGE_FACTOR evaluates the polynomial Lagrange factor at a point.
-
RPOLY_LAGRANGE_VAL evaluates the IPOL-th Lagrange polynomial.
-
RPOLY_LS_SET defines a least squares polynomial for given data.
-
RPOLY_LS_VAL evaluates a least squares polynomial defined by RPOLY_LS_SET.
-
RPOLY_LS_VAL2 evaluates a least squares polynomial defined by RPOLY_LS_SET.
-
RPOLY_PRINT prints out a polynomial.
-
RPOLY_VAL_HORNER evaluates a polynomial using Horner's method.
-
RROW_MAX returns the maximums of rows of a real array.
-
RROW_MEAN returns the means of rows of a real array.
-
RROW_MIN returns the minimums of rows of a real array.
-
RROW_SUM returns the sums of the rows of a table.
-
RROW_SWAP swaps two rows of a table.
-
RROW_TO_RVEC converts a matrix of rows into a vector.
-
RROW_VARIANCE returns the variances of the rows of a real array.
-
RRRVEC_COMPARE compares two RRR vectors.
-
RRRVEC_INDEX_INSERT_UNIQUE inserts a unique RRR value in an indexed sorted list.
-
RRRVEC_INDEX_SEARCH searches for an RRR value in an indexed sorted list.
-
RRVEC_COMPARE compares two RR vectors.
-
RRVEC_INDEX_INSERT_UNIQUE inserts a unique RR value in an indexed sorted list.
-
RRVEC_INDEX_SEARCH searches for an RR value in an indexed sorted list.
-
RVEC2_COMPARE compares pairs of reals stored in two vectors.
-
RVEC2_PRINT prints a pair of real vectors.
-
RVEC2_PRINT_SOME prints "some" of two real vectors.
-
RVEC2_SORT_A ascending sorts a vector of real (X,Y) data.
-
RVEC2_SORT_A descending sorts a vector of real (X,Y) data.
-
RVEC2_SORT_HEAP_INDEX_A does an indexed heap ascending sort of (X,Y) data.
-
RVEC2_SUM_IMAX returns the index of the maximum sum of two real vectors.
-
RVEC2_UNIQUE keeps the unique elements in a sorted array of pairs of reals.
-
RVEC2_UNIQUE_INDEX indexes unique elements in a sorted array of pairs of reals.
-
RVEC3_PRINT prints a trio of real vectors.
-
RVEC3_STRIPLE computes the scalar triple product of three vectors.
-
RVEC3_VTRIPLE computes the vector triple product of three vectors.
-
RVEC4_UNIT_EUCLIDEAN_4D Euclidean normalizes a vector in 4D.
-
RVEC_01_TO_AB shifts and rescales data to lie within given bounds.
-
RVEC_AB_TO_01 shifts and rescales data to lie within [0,1].
-
RVEC_AB_TO_CD shifts and rescales data to lie within a given pair of bounds.
-
RVEC_AMAX returns the maximum absolute value in a real vector.
-
RVEC_AMIN returns the minimum absolute value in a real vector.
-
RVEC_ASCENDS determines if a real vector is (weakly) ascending.
-
RVEC_BIN bins a real vector, returning the population of each bin.
-
RVEC_BIN_EVEN bins a real array into evenly spaced bins.
-
RVEC_BINNED_REORDER reorders a real binned data vector.
-
RVEC_BINNED_SORT_A ascending sorts a real binned reordered data vector.
-
RVEC_BLEND interpolates a vector, given two vectors and weight factors.
-
RVEC_BRACKET searches a sorted array for successive brackets of a value.
-
RVEC_BRACKET2 searches a sorted array for successive brackets of a value.
-
RVEC_BRACKET3 finds the interval containing or nearest a given value.
-
RVEC_COMPARE compares two real vectors.
-
RVEC_CONVOLVE_CIRC returns the discrete circular convolution of two vectors.
-
RVEC_CROSS_3D computes the cross product of two vectors in 3D.
-
RVEC_CUM computes the cumulutive sum of the entries of a vector.
-
RVEC_DIF computes coefficients for estimating the N-th derivative.
-
RVEC_DISTINCT is true if the entries in a real vector are distinct.
-
RVEC_DOT0_3D computes the dot product of (P1-P2) and (P3-P2) in 3D.
-
RVEC_DOT_2D computes the dot product of a pair of vectors in 2D.
-
RVEC_DOT_3D computes the dot product of a pair of vectors in 3D.
-
RVEC_EQ is true if every pair of entries in two vectors is equal.
-
RVEC_EVEN returns N real values, evenly spaced between ALO and AHI.
-
RVEC_EVEN2 linearly interpolates new numbers into a vector of data.
-
RVEC_EVEN3 evenly interpolates new data into a vector.
-
RVEC_EVEN_SELECT returns the I-th of N evenly spaced values in [ XLO, XHI ].
-
RVEC_EXPAND_LINEAR linearly interpolates new data into a vector.
-
RVEC_FRAC searches for the K-th smallest entry in an N-vector.
-
RVEC_GT == ( A1 > A2 ) for real vectors.
-
RVEC_HEAP_A reorders an array of reals into an ascending heap.
-
RVEC_HEAP_D reorders an array of reals into a descending heap.
-
RVEC_HOUSE_COLUMN defines a Householder premultiplier that "packs" a column.
-
RVEC_IAMAX returns the index of the maximum absolute value in a real vector.
-
RVEC_IAMIN returns the index of the minimum absolute value in a real vector.
-
RVEC_IDENTITY sets a real vector to the identity vector A(I)=I.
-
RVEC_IMAX returns the index of the maximum value in a real vector.
-
RVEC_IMIN returns the index of the minimum value in a real vector.
-
RVEC_INDEX_DELETE_ALL deletes all occurrences of a real value from an indexed sorted list.
-
RVEC_INDEX_DELETE_DUPES deletes duplicate real values from an indexed sorted list.
-
RVEC_INDEX_DELETE_ONE deletes one copy of a real value from an indexed sorted list.
-
RVEC_INDEX_INSERT inserts a real value in an indexed sorted list.
-
RVEC_INDEX_INSERT_UNIQUE inserts a unique real value in an indexed sorted list.
-
RVEC_INDEX_ORDER sorts an integer vector using an index vector.
-
RVEC_INDEX_SEARCH searches for a real value in an indexed sorted list.
-
RVEC_INDEX_SORT_UNIQUE creates a sort index for a real vector.
-
RVEC_INSERT inserts a value into an array.
-
RVEC_LT == ( A1 < A2 ) for real vectors.
-
RVEC_MASK_PRINT prints a real masked vector.
-
RVEC_MAX returns the maximum value in a real vector.
-
RVEC_MEAN returns the mean of a real vector.
-
RVEC_MEDIAN returns the median of an unsorted real vector.
-
RVEC_MERGE_A merges two ascending sorted real arrays.
-
RVEC_MIN returns the minimum value of a real array.
-
RVEC_NORM1 returns the 1-norm of a vector.
-
RVEC_NORM2 returns the 2-norm of a vector.
-
RVEC_NORMI returns the infinity-norm of a vector.
-
RVEC_ORDER_TYPE determines if a real array is (non)strictly ascending/descending.
-
RVEC_PART_QUICK_A reorders a real vector as part of a quick sort.
-
RVEC_PERMUTE permutes a real vector in place.
-
RVEC_PERMUTE_RANDOM randomly permutes an real vector.
-
RVEC_POLARIZE decomposes a vector into normal and parallel components.
-
RVEC_PRINT prints a real vector.
-
RVEC_PRINT2 prints out the N vector A.
-
RVEC_PRINT_2D prints a 2D vector.
-
RVEC_PRINT_3D prints a 3D vector.
-
RVEC_PRINT_SOME prints "some" of a real vector.
-
RVEC_RANDOM returns a random real vector in a given range.
-
RVEC_RANGE finds the range of Y's within a restricted X range.
-
RVEC_RANGE_2 updates a range to include a new array.
-
RVEC_REVERSE reverses the elements of a real vector.
-
RVEC_ROTATE rotates an object in place.
-
RVEC_SEARCH_BINARY_A searches an ascending sorted real vector.
-
RVEC_SORT2_A ascending sorts a real array and adjusts an associated real array.
-
RVEC_SORT_BUBBLE_A ascending sorts a real array using bubble sort.
-
RVEC_SORT_HEAP_A ascending sorts a real array using heap sort.
-
RVEC_SORT_HEAP_INDEX_A does an indexed heap ascending sort of a real vector.
-
RVEC_SORT_HEAP_INDEX_D does an indexed heap descending sort of a real vector.
-
RVEC_SORT_HEAP_MASK_A: indexed heap ascending sort of a masked real vector.
-
RVEC_SORT_INSERT_A ascending sorts a real vector using an insertion sort.
-
RVEC_SORT_INSERT_INDEX_A ascending index sorts a real vector using insertion.
-
RVEC_SORT_INSERT_INDEX_D descending index sorts a real vector using insertion.
-
RVEC_SORT_QUICK_A ascending sorts a real vector using quick sort.
-
RVEC_SORT_SHELL_A ascending sorts a real array using Shell's sort.
-
RVEC_SPLIT_SORT "splits" a sorted vector, given a splitting value.
-
RVEC_SPLIT_UNSORT "splits" an unsorted vector based on a splitting value.
-
RVEC_SWAP swaps the entries of two real vectors.
-
RVEC_TO_BIN_EVEN3 determines the appropriate "bin" for an RVEC value.
-
RVEC_UNIQUE keeps only the unique elements in a sorted real array.
-
RVEC_UNIQUE_COUNT counts the unique elements in an unsorted real array.
-
RVEC_UNIQUE_HIST computes a histogram of the unique elements of a sorted vector.
-
RVEC_UNIT_EUCLIDEAN normalizes a N-vector in the Euclidean norm.
-
RVEC_UNIT_EUCLIDEAN_2D Euclidean normalizes a vector in 2D.
-
RVEC_UNIT_EUCLIDEAN_3D Euclidean normalizes a vector in 3D.
-
RVEC_UNIT_SUM normalizes a real vector to have unit sum.
-
RVEC_VARIANCE returns the variance of a real vector.
-
S_CAT concatenates two strings to make a third string.
-
S_EQI is a case insensitive comparison of two strings for equality.
-
S_GTI = S1 is lexically greater than S2.
-
S_LEI = S1 is lexically less than or equal to S2.
-
S_LTI = S1 is lexically less than S2.
-
S_MEMORY manages a set of runtime string variables.
-
S_SWAP swaps two strings.
-
SGE_HESS approximates a Hessian matrix via finite differences.
-
SGE_JAC estimates a dense jacobian matrix of the function FX.
-
SGE_SOLVE computes the solution of an N by N linear system.
-
SORT_HEAP_EXTERNAL externally sorts a list of items into linear order.
-
SVEC_MERGE_A merges two ascending sorted string arrays.
-
SVEC_PERMUTE permutes a string vector in place.
-
SVEC_REVERSE reverses the elements of a string vector.
-
SVEC_SEARCH_BINARY_A searches an ascending sorted string vector.
-
SVEC_SORT_HEAP_A ascending sorts a vector of character strings using heap sort.
-
SVEC_UNIQUE finds the number of unique entries in a vector of strings.
-
SVECI_SEARCH_BINARY_A searches an ascending sorted vector of implicitly capitalized strings.
-
SVECI_SORT_HEAP_A ascending sorts a vector of implicitly capitalized strings using heap sort.
-
TAND returns the tangent of an angle given in degrees.
-
TIMESTAMP prints the current YMDHMS date as a time stamp.
-
TUPLE_NEXT2 computes the next element of an integer tuple space.
-
TVEC_EVEN computes an evenly spaced set of angles between 0 and 2*PI.
-
TVEC_EVEN2 computes an evenly spaced set of angles between 0 and 2*PI.
-
TVEC_EVEN3 computes an evenly spaced set of angles between 0 and 2*PI.
-
TVEC_EVEN_BRACKET computes an evenly spaced set of angles between THETA1 and THETA2.
-
TVEC_EVEN_BRACKET2 computes an evenly spaced set of angles between THETA1 and THETA2.
-
TVEC_EVEN_BRACKET3 computes an evenly spaced set of angles between THETA1 and THETA2.
-
UNIFORM_01_SAMPLE is a portable random number generator.
-
UPC_CHECK_DIGIT returns the check digit of a UPC.
Back to the FORTRAN software page.
Last revised on 19 March 2002.