C++ Source Codes


I've written, converted, modified or admired a few C++ packages.

For each package listed below, if you click on its name, you can see an expanded explanation of its purpose, a list of its contents, and copy the entire source code file, a sample calling program, or the results of running the calling program.

Currently available software includes:

  1. anagram, a program which determines anagrams of a string, by James Cherry;
  2. ann, a library which computes Approximate Nearest Neighbors, by David Mount and Sunil Arya;
  3. ann_test, a program which uses the ann to approximate the nearest neighbors of a set of points stored in a file;
  4. ann_to_fig, a program which plots the search tree used by ann, while seeking the approximate nearest neighbors of a set of points;
  5. args, a program which reports the command line arguments with which it was invoked;
  6. asa005 a library which evaluates the lower tail of the noncentral Student's T distribution; this is Applied Statistics Algorithm 5;
  7. asa006 a library which computes the Cholesky factor of a positive definite symmetric matrix; this is Applied Statistics Algorithm 6;
  8. asa007 a library which computes the inverse of a positive definite symmetric matrix; this is Applied Statistics Algorithm 7;
  9. asa032 a library which evaluates the incomplete Gamma function; this is Applied Statistics Algorithm 32;
  10. asa047 a library which minimizes a scalar function of several variables using the Nelder-Mead algorithm; this is Applied Statistics Algorithm 47;
  11. asa058 a library which carries out clustering of data; this is Applied Statistics Algorithm 58;
  12. asa063 a library which evaluates the incomplete Beta function; this is Applied Statistics Algorithm 63;
  13. asa066 a library which computes the cumulative density function of the standard normal distribution; this is Applied Statistics Algorithm 66;
  14. asa076 a library which evaluates Owen's T function; this is Applied Statistics Algorithm 76;
  15. asa091, a library which computes the percentage points of the Chi-square distribution; this is Applied Statistics Algorithm 91;
  16. asa103, a library which evaluates the digamma or psi function; this is Applied Statistics Algorithm 103;
  17. asa109 a library which inverts the incomplete Beta function; this is Applied Statistics Algorithm 109;
  18. asa111 a library which evaluates the percentage points of the normal distribution; this is Applied Statistics Algorithm 111;
  19. asa113 a library which clusters data using the Banfield and Bassill transfer and swap algorithm; this is Applied Statistics Algorithm 113;
  20. asa121, a library which evaluates the trigamma function; this is Applied Statistics Algorithm 121;
  21. asa136 a library which clusters data using the Hartigan and Wong algorithm; this is Applied Statistics Algorithm 136;
  22. asa144 a library which randomly generates tables with given row and column sums; this is Applied Statistics Algorithm 144;
  23. asa147 a library which evaluates the incomplete Gamma function; this is Applied Statistics Algorithm 147;
  24. asa152, a library which evaluates point and cumulative probabilities associated with the hypergeometric distribution; this is Applied Statistics Algorithm 152;
  25. asa159, a library which computes a random table with given row and column sums; this is Applied Statistics Algorithm 159;
  26. asa172 a library which simulates the generation of a set of multi-indices by nested DO-Loops; this is Applied Statistics Algorithm 172;
  27. asa183, a library which implements the Wichman-Hill pseudorandom number generator; this is Applied Statistics Algorithm 183;
  28. asa226 a library which evaluates the noncentral incomplete Beta function; this is Applied Statistics Algorithm 226;
  29. asa239 a library which evaluates the incomplete Gamma function; this is Applied Statistics Algorithm 239;
  30. asa241, a library which computes the inverse of the normal CDF; this is Applied Statistics Algorithm 241;
  31. asa243 a library which evaluates the lower tail of the noncentral Student's T distribution; this is Applied Statistics Algorithm 243;
  32. asa245 a library which evaluates the logarithm of the Gamma function; this is Applied Statistics Algorithm 245;
  33. asa299, a library which computes the lattice points (integer coordinates) in an multi_dimensional simplex; this is Applied Statistics Algorithm 299;
  34. asa310 a library which evaluates the noncentral incomplete Beta function; this is Applied Statistics Algorithm 310;
  35. beta_nc, a library which evaluates the CDF of the noncentral Beta distribution;
  36. bins, a library which handles geometric data partially sorted into bins;
  37. bits_to_ui, a program which reads a text file of "bits", ('0' and '1' characters), and writes a binary file in which groups of 32 bits have been interpreted as an unsigned integer;
  38. blas1_c, a library which constitutes the Level 1 Basic Linear Algebra Subprograms, using single precision complex arithmetic;
  39. blas1_d, a library which constitutes the Level 1 Basic Linear Algebra Subprograms, using double precision real arithmetic;
  40. blas1_s, a library which constitutes the Level 1 Basic Linear Algebra Subprograms, using single precision real arithmetic;
  41. blas1_z, a library which constitutes the Level 1 Basic Linear Algebra Subprograms, using double precision complex arithmetic;
  42. blend, a library which uses transfinite interpolation to fill in data within a square or a cube based on boundary values;
  43. bmp_io, a library which reads and writes graphics information stored in a Microsoft BMP file;
  44. bmp_to_ppma, a program which converts a Microsoft BMP file to an ASCII PPM file;
  45. bmp_to_ppmb, a program which converts a Microsoft BMP file to a binary PPM file;
  46. box_behnken, a library which computes a Box-Behnken design, that is, a set of arguments to sample the behavior of a function of multiple parameters;
  47. brent a library which contains Richard Brent's routines for finding zeroes or minima of functions, without the use of derivative information.
  48. calendar_rd, a program which computes the representation of a given date in a number of calendrical systems, by Edward Reingold and Nachum Dershowitz
  49. caustic_open_gl, a program which computes a caustic curve and displays it using OpenGL.
  50. ccvt_box, a program which carries out a CVT calculation constrained to a box region, with points projected to the boundary;
  51. chebyshev1_rule, a program which computes and writes out a Gauss-Chebyshev type 1 quadrature rule of given order.
  52. chebyshev2_rule, a program which computes and writes out a Gauss-Chebyshev type 2 quadrature rule of given order.
  53. chrpak, a library which can manipulate characters and strings;
  54. clenshaw_curtis_grid, a library which implements a multidimensional Clenshaw Curtis quadrature rule;
  55. clenshaw_curtis_rule, a program which implements a Clenshaw Curtis quadrature rule;
  56. cnf_io is a library which reads or writes CNF data files, used to store boolean formulas in conjunctive normal form.
  57. cordic, a library which computes a few special functions using the CORDIC algorithm.
  58. cpp, examples which illustrate some features of the C++ language;
  59. cr2crlf, a program which converts carriage returns to carriage returns + linefeeds in a file;
  60. cr2lf, a program which converts carriage returns to linefeeds in a file;
  61. crc, a library which computes the CRC (cyclic redundancy checksum) as used by the PNG data format.
  62. crrm, a program which removes carriage returns from a file;
  63. cvt, a library which computes an N point CVT (Centroidal Voronoi Tessellation) in M dimensions;
  64. cvt_dataset, a program which creates a CVT (Centroidal Voronoi Tessellation) dataset;
  65. dcdflib, a library which evaluates and inverts of various cumulative distribution functions;
  66. deblank, a program which removes all blank lines from a file;
  67. decomment, a program which removes from a file every line that begins with "#" (a common convention for indicating comments);
  68. delaunay_tree_2d, a program which computes the Delaunay triangulation of a 2D dataset;
  69. detroff, a program which removes from a file every occurrence of the TROFF overprint pair character+backspace, which can make a MAN page printable;
  70. dislin, examples which illusrate the use of DISLIN, a scientific plotting package;
  71. divdif, a library which computes divided difference polynomials from data;
  72. dunavant, a library which defines Dunavant quadrature rules in a triangle;
  73. emps, a program which expands a compressed MPS linear programming file;
  74. faure, a library which computes elements of the Faure multi_dimensional quasirandom sequence;
  75. fd_predator_prey, a program which solves a pair of predator prey ODE's using a finite difference approximation.
  76. fd1d_bvp, a program which applies the finite difference method to a two point boundary value problem in one spatial dimension.
  77. fd1d_heat_explicit, a program which implements a finite difference solution, explicit in time, of the time dependent 1D heat equation;
  78. fd1d_heat_implicit, a program which implements a finite difference solution, implicit in time, of the time dependent 1D heat equation;
  79. fd1d_heat_steady, a program which implements a finite difference solution for the steady (time independent) 1D heat equation;
  80. fekete, a library which sets up one of seven Fekete rules for interpolation or quadrature in a triangle;
  81. felippa, a library which defines quadrature rules for lines, triangles, quadrilaterals, pyramids, wedges, tetrahedrons and hexahedrons.
  82. fem_io, a library which reads or writes FEM files, (three text files describing a finite element model);
  83. fem1d, a program which applies the finite element method, using piecewise linear basis functions, to a linear two point boundary value problem in 1D;
  84. fem1d_adaptive, a program which uses an adaptive mesh when applying the finite element method, with piecewise linear basis functions, to a linear two point boundary value problem in 1D;
  85. fem1d_nonlinear, a program which applies the finite element method, with piecewise linear basis functions, to a nonlinear two point boundary value problem in 1D;
  86. fem1d_pmethod, a program which applies the p-method version of the finite element method to a linear two point boundary value problem in 1D;
  87. fem1d_project is a program which projects data into a finite element space, including the least squares approximation of data, or the projection of a finite element solution from one mesh to another.
  88. fem1d_sample, a program which samples a scalar or vector finite element function of one variable, defined by FEM files, returning interpolated values at the sample points.
  89. fem2d_heat, a program which applies the finite element method to solve the time dependent heat equation on a square in 2D;
  90. fem2d_poisson, is a program which solves the 2D Poisson equation on a rectangle, using the finite element method, and piecewise quadratic triangular elements.
  91. fem2d_poisson_linear is a program which solves the 2D Poisson equation on a rectangle, using the finite element method, and piecewise linear triangular elements.
  92. fem2d_project is a program which projects a function F(X,Y), given as data, into a given finite element space of piecewise linear triangular elements.
  93. fem2d_project_function is a program which projects a function F(X,Y), given as a formula, into a given finite element space of piecewise linear triangular elements.
  94. fem2d_sample, a program which samples a finite element function, defined by FEM files, (three text files describing the nodes, triangles, and coefficients); at arbitrary points.
  95. fempack, a library which implements various finite element calculations;
  96. ffp_sparse, a program which uses the finite element method to solve Poisson's equation on an arbitrary triangulated region in 2D; (This is a version of free_fem_poisson which replaces the banded storage and direct solver by a sparse storage format and an iterative solver.)
  97. fft_open_mp is a program which demonstrates the computation of a Fast Fourier Transform in parallel, using OpenMP.
  98. fft_serial is a program which computes a Fast Fourier Transform, and is intended as a starting point for implementing an OpenMP parallel version.
  99. filum, a library which performs various operations with files;
  100. floyd is a library which implements Floyd's algorithm for finding the shortest distance between pairs of nodes on a directed graph.
  101. free_fem_heat, a program which applies the finite element method to solve the time-dependent heat equation in an arbitrary triangulated region in 2D;
  102. free_fem_navier_stokes, a program which applies the finite element method to solve the steady incompressible Navier Stokes equations in an arbitrary triangulated region in 2D;
  103. free_fem_poisson, a program which applies the finite element method to solve Poisson's equation in an arbitrary triangulated region in 2D;
  104. free_fem_stokes, a program which applies the finite element method to solve the steady incompressible Stokes's equations in an arbitrary triangulated region in 2D;
  105. fsu_dakota, a library which implements a variety of methods for the generation of quasirandom numbers, submitted for inclusion in the Sandia Labs DAKOTA package;
  106. g++_intrinsics, a program which tests or demonstrates some of the intrinsic functions provided by the G++ compiler.
  107. gegenbauer_rule, a program which computes and writes out a Gauss-Gegenbauer quadrature rule of given order.
  108. gen_hermite_rule, a program which computes and writes out a generalized Gauss-Hermite quadrature rule of given order and parameter value ALPHA.
  109. gen_laguerre_rule, a program which computes and writes out a generalized Gauss-Laguerre quadrature rule of given order and parameter value ALPHA.
  110. geometry, a library which carries out geometrical algorithms for 2D, 3D, ND;
  111. geompack, a library which computes the Delaunay triangulation of 2D data;
  112. gm_rules, a library which defines Grundmann-Moeller quadratures rules for an M-dimensional simplex.
  113. gp_io, a library which reads GP data files.
  114. gprof, examples which illustrate the use of the GPROF program performance monitor;
  115. grf_display_open_gl, a program which reads a GRF file defining a mathematical graph and displays it in the OpenGL graphics window.
  116. grf_io, a library which reads or writes a GRF file;
  117. grid, a library which generates N random points on an multi_dimensional uniform grid;
  118. grid_dataset, a program which creates a file of grid values;
  119. grid_to_bmp a program which reads a text file of data on a rectangular grid and creates a BMP file containing a color image of the data.
  120. gsl, examples which illustrate the use of the Gnu Scientific Library;
  121. halton, a library which computes elements of the Halton multi-dimensional quasirandom sequence;
  122. halton_dataset, a program which creates a Halton quasirandom sequence;
  123. hammersley, a library which computes elements of the Hammersley multi_dimensional quasirandom sequence;
  124. hammersley_dataset, a program which creates a Hammersley quasirandom sequence;
  125. hb_io, a library which reads and writes matrices in the Harwell Boeing sparse matrix format;
  126. heat_mpi, a program which demonstrates the use of MPI, by solving the 1D time dependent heat equation.
  127. heated_plate is a program which solves the steady state heat equation in a 2D rectangular region, and is intended as a starting point for implementing an OpenMP parallel version.
  128. hello, a program which prints out "Hello, world!".
  129. hermite_rule, a program which computes and writes out a Gauss-Hermite quadrature rule of given order.
  130. hex_grid, a library which creates a hexagonal grid of points in the unit square or an arbitrary rectangle;
  131. hex_grid_dataset, a program which creates a hexagonal grid of points, using the hex_grid library;
  132. hexdump, a program which produces a hexadecimal dump of a file;
  133. htmlindex, a program which creates a skeleton HTML page for a marked-up C, C++ or FORTRAN file;
  134. ihs, a library which computes elements of the Improved Distributed Hypercube Sampling multi-dimensional quasirandom sequence;
  135. ihs_dataset, a program which creates an IHS (Improved Distributed Hypercube Sampling) dataset;
  136. index, a program which extracts routine definition lines from a marked-up C, C++, FORTRAN77 or FORTRAN90 file;
  137. int_exactness, a program which tests the polynomial exactness of a 1D quadrature rule for a finite interval;
  138. int_exactness_chebyshev1, a program which tests the polynomial exactness of Gauss-Chebyshev type 1 quadrature rules.
  139. int_exactness_chebyshev2, a program which tests the polynomial exactness of Gauss-Chebyshev type 2 quadrature rules.
  140. int_exactness_gegenbauer, a program which tests the polynomial exactness of Gauss-Gegenbauer quadrature rules.
  141. int_exactness_gen_hermite, a program which tests the polynomial exactness of generalized Gauss-Hermite quadrature rules.
  142. int_exactness_gen_laguerre, a program which tests the polynomial exactness of generalized Gauss-Laguerre quadrature rules.
  143. int_exactness_hermite, a program which tests the polynomial exactness of Gauss-Hermite quadrature rules.
  144. int_exactness_jacobi, a program which tests the polynomial exactness of Gauss-Jacobi quadrature rules.
  145. int_exactness_laguerre, a program which tests the polynomial exactness of Gauss-Laguerre quadrature rules.
  146. int_exactness_legendre, a program which tests the polynomial exactness of Gauss-Legendre quadrature rules.
  147. ivcon, a program which converts between various 3D graphic file formats;
  148. jacobi_rule, a program which computes and writes out a Gauss-Jacobi quadrature rule of given order.
  149. joinup is a program which restores the original file from the fixed-size pieces created by SPLITUP.
  150. keast, a library which defines Keast quadrature rules in a tetrahedron;
  151. laguerre_rule, a program which computes and writes out a Gauss-Laguerre quadrature rule of given order.
  152. latin_center, a library which computes Latin Center Squares of N points in M dimensions;
  153. latin_edge, a library which computes Latin Edge Squares of N points in M dimensions;
  154. latin_random, a library which computes Latin Random Squares of N points in M dimensions;
  155. latinize, a library which adjusts N points in M dimensions to form a Latin Hypercube;
  156. lattice, a library which returns lattice rules for multiple integration;
  157. lcvt, a library which creates a sort of "Latinized" CVT (Centroidal Voronoi Tessellation);
  158. lcvt_dataset, a program which creates a "Latinized" CVT (Centroidal Voronoi Tessellation);
  159. legendre_rule, a program which writes out a Gauss-Legendre quadrature rule of given order.
  160. lf2cr, a program which converts linefeeds to carriage returns in a file;
  161. lf2crlf, a program which converts linefeeds to carriage return + linefeeds in a file;
  162. lfrm, a program which removes all linefeed characters from a file;
  163. lights_out_open_gl, a program which sets up a "Lights Out" game and allows the user to solve it, using the OpenGL graphics window.
  164. linpack_bench, a program which is a version of the LINPACK benchmark program;
  165. linpack_c, a library which factors matrices in a variety of formats, and solving the associated linear systems, using single precision complex arithmetic;
  166. linpack_d, a library which factors matrices in a variety of formats, and solving the associated linear systems, using double precision real arithmetic;
  167. linpack_s, a library hich factors matrices in a variety of formats, and solving the associated linear systems, using single precision real arithmetic;
  168. linpack_z, a library which factors matrices in a variety of formats, and solving the associated linear systems, using double precision complex arithmetic;
  169. linplus, a library which factors/solves/multiplies matrices in a variety of formats;
  170. lissajous_open_gl, a program which computes a Lissajous curve and displays it using OpenGL.
  171. machar, a library which dynamically computes the value of various machine characteristic constants;
  172. machine, a library which returns tabulated values of the constants associated with computer arithmetic
  173. makefiles, examples which illustrate the use of MAKEFILES for maintaining a software project;
  174. md is a program which carries out a molecular dynamics simulation, and is intended as a starting point for implementing an OpenMP parallel version.
  175. md_open_mp a program which carries out a molecular dynamics simulation using OpenMP.
  176. memory_test, a program which tests the memory available on the computer by declaring and using big vectors.
  177. mesh_bandwidth, a program which returns the geometric bandwidth associated with a mesh of elements of any order and in a space of arbitrary dimension.
  178. mesh_display_open_gl, a program which reads data defining a polygonal mesh and displays it using OpenGL.
  179. mgmres, a library which applies the restarted GMRES algorithm to a sparse linear system;
  180. mixed, examples which illustrate mixed language programming in which the main program is written in C++;
  181. mpi, examples which illustrate the use of the MPI Message Passing Interface library, for parallel programming;
  182. mpi_stubs, a library which may be used if a parallel program is to be compiled, loaded and run in a serial machine;
  183. mpi_sysx, examples which illustrate the use of PBS scripts for submitting MPI jobs to System X.
  184. mxv, a program which compares the performance of (FOR I, FOR J) loops and (FOR J, FOR I ) loops for computing the product of an MxN matrix A and an N vector X.
  185. mxv_open_mp, a program which compares the performance of the matrix multiplication problem y=A*x, with and without parallelization by OpenMP.
  186. my_calendar, a program which checks a calendar file and prints any line containing the current date;
  187. my_complex, a C++ class for complex numbers;
  188. nast2d, a program which applies the 2D finite volume method to solve transient Navier Stokes flow, by Griebel, Dornseifer and Neunhoffer;
  189. ncc_tetrahedron, a library which defines Newton-Cotes closed quadrature rules in a tetrahedron;
  190. ncc_triangle, a library which defines Newton-Cotes closed quadrature rules in a triangle;
  191. nco_tetrahedron, a library which defines Newton-Cotes open quadrature rules in a tetrahedron;
  192. nco_triangle, a library which defines Newton-Cotes open quadrature rules in a triangle;
  193. neighbors_to_metis_graph, a program which reads a file describing the neighbor structure of a tet mesh, and writes a METIS GRAPH file suitable for input to one of the family of programs based on METIS.
  194. niederreiter, a library which computes elements of the Niederreiter quasirandom M dimensional sequence [arbitrary base];
  195. niederreiter2, a library which computes elements of the Niederreiter multi-dimensional quasirandom sequence using base 2;
  196. nint_exactness, a program which tests the polynomial exactness of a multidimensional quadrature rule defined over a finite rectangular product region.
  197. nint_exactness_mixed a program which measures the polynomial exactness of a multidimensional quadrature rule based on a mixture of 1D quadrature rule factors.
  198. nint_exactness_tet, a program which tests the polynomial exactness of a quadrature rule for the tetrahedron;
  199. nint_exactness_tri, a program which tests the polynomial exactness of a quadrature rule for the triangle;
  200. nintlib, a library which implements approximate integration (quadrature) in multiple dimensions;
  201. normal, a library which generates pseudorandom normal numbers;
  202. open_gl, examples which illustrate the use of the OpenGL graphics library;
  203. open_mp, examples which illustrate the use of the OpenMP interface for parallel programming shared memory system;
  204. open_mp_sgi, examples which illustrate the use of OpenMP with C++ programs on the Virginia Tech SGI systems.
  205. open_mp_stubs, a library which is a dummy implementation of the OpenMP routines, and can be used to compile, load, and run a program using OpenMP on a system which does not have OpenMP installed.
  206. owens a library which evaluates Owen's T function;
  207. pages, a program which counts the number of pages (sets of 60 lines) in a file;
  208. patterson_rule, a program which looks up and writes out a Gauss-Patterson quadrature rule of given order.
  209. pbma_io, a library which reads or writes an ASCII PBM bit map graphics file;
  210. pbmb_io, a library which reads or writes a binary PPM bit map graphics file;
  211. pcl_read, a program which reads a PCL file and extracts the numeric data;
  212. petsc, examples which illustrate the use of the Portable Extensible Toolkit for Scientific Computations;
  213. pgma_io, a library which reads or writes an ASCII PGM gray map graphics file;
  214. pgma_to_pgmb, a program which converts an ASCII PGM file to a binary PGM file;
  215. pgmb_io, a library which reads or writes a binary PGM file, a 2D gray map graphics format;
  216. pgmb_to_pgma, a program which converts a binary PGM file; to a ASCII PGM file;
  217. piecewise_linear_product_integral is a library which calculates the exact value of the integral of the product of two piecewise linear functions F(X) and G(X).
  218. png_crc, a program which computes the CRC (cyclic redundancy checksum) for a PNG graphics file (or any other file, for that matter);
  219. polpak, a library which evaluates recursively defined polynomials, and other special functions;
  220. polygonal_surface_display_open_gl a program which displays a surface in 3D described as a set of polygons using OpenGL;
  221. power_method a library which carries out the power method for finding a dominant eigenvalue and its eigenvector.
  222. ppma_io, a library which reads or writes an ASCII PPM file pixel map graphics file;
  223. ppma_to_bmp, a program which converts an ASCII PPM file to a Microsoft BMP file;
  224. ppma_to_ppmb, a program which converts an ASCII PPM file to binary PPM format;
  225. ppmb_io, a library which reads or writse a binary PPM 2D pixel map graphics file;
  226. ppmb_to_bmp, a program which converts a binary PPM file to a Microsoft BMP file;
  227. ppmb_to_ppma, a program which converts a binary PPM file to ASCII PPM format
  228. prime_number is a program which counts the number of primes between 1 and N.
  229. prime_number_mpi is a program which counts the number of primes between 1 and N, using MPI for parallel execution.
  230. prime_number_open_mp is a program which counts the number of primes between 1 and N, using OpenMP for parallel execution.
  231. prob, a library which evaluates the PDF, CDF, mean, variance and samples of various probability distributions;
  232. product_factor, a program which creates a multidimensional quadrature rule from a product of distinct 1d quadrature rules;
  233. product_rule, a program which creates a multidimensional quadrature rule from a product of identical 1d quadrature rules;
  234. pthreads, examples which illustrate the use of the POSIX thread library to carry out parallel program execution.
  235. quad_mesh, a library which handles meshes of quadrilaterals over a 2D region;
  236. quad_mpi, a program which applies a quadrature rule to estimate an integral, working in parallel by using MPI;
  237. quad_open_mp, a program which applies a quadrature rule to estimate an integral, working in parallel by using OpenMP;
  238. quadrature_test a program which reads the definition of a multidimensional quadrature rule from three files, applies the rule to a number of test integrals, and prints the results.
  239. quadrature_test_2d a program which reads the definition of a 2D quadrature rule from three files, applies the rule to a number of test integrals, and prints the results.
  240. quadrule, a library which defines quadrature rules for approximating integrals;
  241. quality, a library which computes quality of distribution measures for pointsets in M dimensions;
  242. rand48, a program which demonstrates the use of the RAND48 family of random number generators available in the C/C++ standard library.
  243. random_data, a library which generates sample points for various probability distributions, spatial dimensions, and geometries;
  244. random_mpi, a program which demonstrates one way to generate the same sequence of random numbers for both sequential execution and parallel execution under MPI.
  245. rcm, a library which applies the reverse Cuthill McKee algorithm for reordering the nodes of a graph, and reducing the bandwidth of a corresponding sparse matrix;
  246. recomment, a program which converts C style comments to C++ style;
  247. region_sample, a library which returns sample points from a region;
  248. reword, a program which makes a copy of a file in which every line has the same number of "words";
  249. rkf45, a library which applies the Runge-Kutta-Fehlberg algorithm to solve a system of ordinary differential equations;
  250. rot13, a program which makes a copy of a file which has been encoded using the ROT13 coding (and a ROT5 coding for digits).
  251. rotating_cube_display_open_gl a program which displays a rotating color cube in 3D, using OpenGL;
  252. rsites, a program which generates random pointsets with integer coordinates for testing computational geometry algorithms;
  253. sandia_rules, a library which can produce a standard 1D Gauss quadrature rule of Chebyshev, Gegenbauer, generalized Hermite, generalized Laguerre, Hermite, Jacobi, Laguerre, and Legendre types.
  254. sandia_sparse, a library which can produce a multidimensional sparse grid, based on a variety of 1D quadrature rules; only isotropic grids are generated, that is, the same rule is used in each dimension, and the same maximum order is used in each dimension.
  255. satisfiability is a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem.
  256. satisfiability_mpi is a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem, using MPI to perform the calculation in parallel.
  257. satisfiability_open_mp is a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem, using OpenMP for parallel execution.
  258. sgefa_open_mp, a program which compares a standard linear algebra solver against a revised version which can be run in parallel with OpenMP.
  259. simple_ga, a program which is a simple example of a genetic algorithm.
  260. sobol, a library which computes elements of the Sobol multi-dimensional quasirandom sequence, extended to a maximal spatial dimension of 1111;
  261. sobol_old, a library which computes elements of the Sobol multi_dimensional quasirandom sequence, restricted to a maximal spatial dimension of 40;
  262. sp_level_closed, a program which creates of a sparse grid dataset based on closed rules (Clenshaw-Curtis, Newton-Cotes-Closed).
  263. sp_level_open, a program which creates a sparse grid dataset based on open rules (Fejer 2, Gauss-Patterson, Newton-Cotes-Open).
  264. sparse_grid_cc, a library of routines which creates sparse grids based on Clenshaw-Curtis rules.
  265. sparse_grid_cc_dataset, a program which creates a sparse grid dataset based on Clenshaw-Curtis rules.
  266. sparse_grid_closed, a library of routines which creates sparse grids based on closed rules (Clenshaw-Curtis, Newton-Cotes-Closed).
  267. sparse_grid_gl, a library which creates sparse grids based on Gauss-Legendre rules.
  268. sparse_grid_gl_dataset, a program which creates a sparse grid dataset based on Gauss-Legendre rules.
  269. sparse_grid_hermite, a library which creates sparse grids based on Gauss-Hermite rules.
  270. sparse_grid_hermite_dataset, a program which creates a sparse grid dataset based on Gauss-Hermite rules.
  271. sparse_grid_laguerre, a library which creates sparse grids based on Gauss-Laguerre rules.
  272. sparse_grid_laguerre_dataset, a program which creates a sparse grid dataset based on Gauss-Laguerrre rules.
  273. sparse_grid_mixed, a library which creates sparse grids based a mixture of 1D factor rules.
  274. sparse_grid_mixed_growth, a library which creates sparse grids based a mixture of 1D factor rules, and which experiments with the idea of using linear growth rate for the 1D quadrature rules.
  275. sparse_grid_open, a library which creates sparse grids based on open rules (Fejer 2, Gauss-Patterson, Newton-Cotes-Open).
  276. sphere_voronoi_display_open_gl, a program which displays a sphere and randomly selected generator points, and then gradually colors in points in the sphere that are closest to each generator.
  277. spline, a library which interpolates or approximates data by piecewise polynomial functions;
  278. splitup is a program which splits a file into fixed-size pieces.
  279. stla_io, a library which reads and writes ASCII STL (stereolithography) 3d graphics files;
  280. stroud, a library which defines rules for numerical integration (quadrature) over M dimensional regions, including spheres, toruses and other shapes;
  281. subpak, a library which contains many utility routines;
  282. subset, a library which ranks, unranks and generates random subset, combinations, permutations and other combinatorial objects;
  283. sum_million, a program which sums the integers from 1 to 1,000,000, as a demonstration of how to rate a computer's speed;
  284. svd_basis, a program which applies the singular value decomposition to a set of vectors, to extract the dominant modes;
  285. svd_demo, a program which demonstrates the calculation of the singular value decomposition and some of its properties;
  286. table_border, a program which reads a TABLE file of 2D data, and adds data representing a boundary layer of zero values;
  287. table_delaunay, a program which computes the Delaunay triangulation of a set of points stored as a TABLE file;
  288. table_discrepancy, a program which computes bounds on the star discrepancy of a set of N points in multi_dimensions, stored as a TABLE file;
  289. table_io, a library which reads and writes a simple dataset stored as a TABLE file;
  290. table_latinize, a program which reads a dataset of N points in M dimensions from a TABLE file, adjusts data to form a Latin Hypercube;
  291. table_quality, a program which reads a dataset of N points in the multi-dimensional unit hypercube from a TABLE file, and analyzes the quality of dispersion;
  292. table_unborder, a program which reads a TABLE file of 2D data and deletes the data representing the boundary layer;
  293. table_voronoi, a program which reads a set of 2D points from a TABLE file, and prints information about the Voronoi diagram;
  294. tanh_quad, a library which sets up the tanh quadrature rule;
  295. tanh_sinh_rule, a program which computes and writes out a tanh-sinh quadrature rule of given order.
  296. test_int_2d, a library which implements test problems for approximate integration (quadrature) in two dimensions.
  297. test_int_hermite, a library which implements test problems for approximate integration over an infinite interval, often carried out using Gauss-Hermite quadrature.
  298. test_int_laguerre, a library which implements test problems for approximate integration over a semi-infinite interval, often carried out using Gauss-Laguerre quadrature.
  299. test_mat, a library which implements test matrices.
  300. test_min, a library which implements test problems for minimization of a scalar function of a scalar variable.
  301. test_nint, a library which implements test problems for approximate integration (quadrature) in M dimensions.
  302. test_tri_int, a library which implements test functions for integration over a triangle in 2 dimensions.
  303. test_values, a library which returns a small set of values for a variety of mathematical functions, suitable for a rough test of accuracy for algorithms;
  304. testpack, a program which demonstrates the use of a set of test integrand functions chosen by Alan Genz.
  305. tet_mesh, a library which works with tetrahedral meshes in 3D;
  306. tet_mesh_display_open_gl, a program which reads two files describing a tetrahedral mesh in 3D and displays it using OpenGL.
  307. tet_mesh_l2q, a program which reads information about a 4-node (linear) tet mesh and creates data defining a corresponding 10-node (quadratic) tet mesh;
  308. tet_mesh_q2l, a program which reads information about a 10-node (quadratic) tet mesh and creates data defining a corresponding 4-node (linear) tet mesh;
  309. tet_mesh_quality, a program which reads a node coordinate file and a tetrahedron file and returns quality measures for the tetrahedronal mesh;
  310. tet_mesh_rcm, a program which computes the reverse Cuthill-McKee reordering for the nodes of a tet_mesh that uses 4-node or 10-node tetrahedrons;
  311. tet_mesh_refine, a program which refines a tet mesh;
  312. tet_mesh_tet_neighbors, a program which reads information about a tet mesh and writes out a list of the tetrahedrons that are adjacent to a given tetrahedron;
  313. tga_io, a library which reads a TGA or TARGA graphics file;
  314. tiler_3d, a library which blends a pattern repeatedly into a region in 3D;
  315. timer, examples which measure the CPU time used by a portion of a user's program;
  316. timestamp, a library which prints the current YMDHMS date as a timestamp, and other timekeeping operations;
  317. toms178 a library which seeks the minimizer of a scalar function of several variables using the Hooke-Jeeves method;
    this is a C++ version of ACM TOMS algorithm 178.
  318. toms179 a library which calculates the incomplete Beta ratio;
    this is a C++ version of ACM TOMS algorithm 179.
  319. toms291 a library which approximates the logarithm of the Gamma function;
    this is a C++ version of ACM TOMS algorithm 291.
  320. tri_surface_io, a library which reads and writes the 3D graphics information in an TRI_SURFACE file;
  321. triangulation, a library which computes the triangulation of a set of points in the plane, to search it, plot it, and manipulate it in other ways;
  322. triangulation_boundary_nodes, a program which reads data defining a triangulation, determines which nodes lie on the boundary, and writes their coordinates to a file;
  323. triangulation_corner, a program which modifies triangulations in which one or more triangles have more than one boundary edge.
  324. triangulation_display_open_gl, a program which reads two files describing a triangulation and displays it using OpenGL.
  325. triangulation_l2q, a program which reads information about a 3-node (linear) triangulation and creates data defining a corresponding 6-node (quadratic) triangulation;
  326. triangulation_mask, a program which reads a triangulation and calls a user-supplied routine to consider each triangle for deletion;
  327. triangulation_orient, a program which ensures that the triangles in an order 3 or order 6 triangulation have positive orientation;
  328. triangulation_plot, a program which reads files describing a triangulation, and creates an Encapsulated PostScript image of it.
  329. triangulation_q2l, a program which reads information about a 6-node triangulation and creates data defining a corresponding 3-node triangulation;
  330. triangulation_quality, a program which reads information about a triangulation and computes various quality measures;
  331. triangulation_rcm, a program which computes the reverse Cuthill-McKee reordering for the nodes of a triangulation that uses 3-node or 6-node triangles;
  332. triangulation_refine, a program which refines a triangulation;
  333. triangulation_t3_to_t4 is a program which reads information about a 3-node triangulation and creates data defining a corresponding 4-node triangulation (vertices + centroid);
  334. triangulation_triangle_neighbors, a program which reads data defining a triangulation, finds the three neighbor triangles for each triangle, and writes them to a file;
  335. uncontrol, a program which removes control characters from a file;
  336. uniform, a library which generates uniform pseudorandom numbers;
  337. uniform_dataset, a program which creates a file of uniform pseudorandom values;
  338. van_der_corput, a library which evaluates the van der Corput 1-dimensional quasirandom sequence;
  339. van_der_corput_dataset, a program which creates a file of van der Corput values;
  340. vector_read, a library which reads, one line at a time, numeric data, storing it in a vector returned to the user;
  341. wandzura, a library which returns a Wandzura rule for quadrature in a triangle;
  342. width, a program which returns the length and location of the longest line in a text file;
  343. wrap, a program which "wraps" a file so that no line is longer than 80 characters;
  344. wrap2, a program which "wraps" a text file so that no line is longer than a given maximum; the wrapping may be done slightly earlier than at the maximum, in order to avoid breaking words;
  345. wtime is a library which returns a reading of the wall clock time in seconds.
  346. x_window, examples which illustrate the use of the X Window graphical terminal system;
  347. xy_display_open_gl, a program which reads XY information defining points in 2D and displays an image using OpenGL;
  348. xy_io, a library which reads and writes XY, XYL and XYF files defining points, lines and faces in 2D.
  349. xyf_display_open_gl, a program which reads XYF information defining points and faces in 2D and displays an image using OpenGL;
  350. xyl_display_open_gl, a program which reads XYL information defining points and lines in 2D and displays an image using OpenGL;
  351. xyz_display_open_gl, a program which reads XYZ information defining points in 3D and displays an image using OpenGL;
  352. xyz_io, a library which reads and writes XYZ, XYZL and XYZF files defining points, lines and faces in 3D.
  353. xyzf_display_open_gl, a program which reads XYZF information defining points and faces in 3D and displays an image using OpenGL;
  354. xyzl_display_open_gl, a program which reads XYZL information defining points and lines in 3D and displays an image using OpenGL;
  355. ziggurat, a library which samples the uniform, normal or exponential distributions, using the ziggurat method.
  356. ziggurat_open_mp, a program which demonstrates how the ZIGGURAT library can be used to generate random numbers in an OpenMP parallel program.
  357. ziggurat_original, a library which is the original version of the ZIGGURAT library.

You can go up one level to the main web page.


Last revised on 24 April 2009.