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_pack, a library which implements various 2D finite element calculations;
  91. fem2d_poisson, is a program which solves the 2D Poisson equation on a rectangle, using the finite element method, and piecewise quadratic triangular elements.
  92. 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.
  93. 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.
  94. 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.
  95. 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.
  96. fem3d_pack is a library which contains utilities for 3D finite element calculations.
  97. fem3d_project is a program which projects a function F(X,Y,Z), given as a data, into a given finite element space of piecewise linear tetrahedral elements.
  98. fem3d_sample is a program library which evaluates a finite element function defined on a 3D tetrahedral mesh.
  99. 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.)
  100. fft_open_mp is a program which demonstrates the computation of a Fast Fourier Transform in parallel, using OpenMP.
  101. fft_serial is a program which computes a Fast Fourier Transform, and is intended as a starting point for implementing an OpenMP parallel version.
  102. filum, a library which performs various operations with files;
  103. floyd is a library which implements Floyd's algorithm for finding the shortest distance between pairs of nodes on a directed graph.
  104. 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;
  105. 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;
  106. free_fem_poisson, a program which applies the finite element method to solve Poisson's equation in an arbitrary triangulated region in 2D;
  107. 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;
  108. 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;
  109. g++_intrinsics, a program which tests or demonstrates some of the intrinsic functions provided by the G++ compiler.
  110. gegenbauer_rule, a program which computes and writes out a Gauss-Gegenbauer quadrature rule of given order.
  111. gen_hermite_rule, a program which computes and writes out a generalized Gauss-Hermite quadrature rule of given order and parameter value ALPHA.
  112. gen_laguerre_rule, a program which computes and writes out a generalized Gauss-Laguerre quadrature rule of given order and parameter value ALPHA.
  113. geometry, a library which carries out geometrical algorithms for 2D, 3D, ND;
  114. geompack, a library which computes the Delaunay triangulation of 2D data;
  115. gm_rules, a library which defines Grundmann-Moeller quadratures rules for an M-dimensional simplex.
  116. gp_io, a library which reads GP data files.
  117. gprof, examples which illustrate the use of the GPROF program performance monitor;
  118. grf_display_open_gl, a program which reads a GRF file defining a mathematical graph and displays it in the OpenGL graphics window.
  119. grf_io, a library which reads or writes a GRF file;
  120. grid, a library which generates N random points on an multi_dimensional uniform grid;
  121. grid_dataset, a program which creates a file of grid values;
  122. 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.
  123. gsl, examples which illustrate the use of the Gnu Scientific Library;
  124. halton, a library which computes elements of the Halton multi-dimensional quasirandom sequence;
  125. halton_dataset, a program which creates a Halton quasirandom sequence;
  126. hammersley, a library which computes elements of the Hammersley multi_dimensional quasirandom sequence;
  127. hammersley_dataset, a program which creates a Hammersley quasirandom sequence;
  128. hb_io, a library which reads and writes matrices in the Harwell Boeing sparse matrix format;
  129. heat_mpi, a program which demonstrates the use of MPI, by solving the 1D time dependent heat equation.
  130. 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.
  131. hello, a program which prints out "Hello, world!".
  132. hermite_rule, a program which computes and writes out a Gauss-Hermite quadrature rule of given order.
  133. hex_grid, a library which creates a hexagonal grid of points in the unit square or an arbitrary rectangle;
  134. hex_grid_dataset, a program which creates a hexagonal grid of points, using the hex_grid library;
  135. hexdump, a program which produces a hexadecimal dump of a file;
  136. htmlindex, a program which creates a skeleton HTML page for a marked-up C, C++ or FORTRAN file;
  137. ihs, a library which computes elements of the Improved Distributed Hypercube Sampling multi-dimensional quasirandom sequence;
  138. ihs_dataset, a program which creates an IHS (Improved Distributed Hypercube Sampling) dataset;
  139. index, a program which extracts routine definition lines from a marked-up C, C++, FORTRAN77 or FORTRAN90 file;
  140. int_exactness, a program which tests the polynomial exactness of a 1D quadrature rule for a finite interval;
  141. int_exactness_chebyshev1, a program which tests the polynomial exactness of Gauss-Chebyshev type 1 quadrature rules.
  142. int_exactness_chebyshev2, a program which tests the polynomial exactness of Gauss-Chebyshev type 2 quadrature rules.
  143. int_exactness_gegenbauer, a program which tests the polynomial exactness of Gauss-Gegenbauer quadrature rules.
  144. int_exactness_gen_hermite, a program which tests the polynomial exactness of generalized Gauss-Hermite quadrature rules.
  145. int_exactness_gen_laguerre, a program which tests the polynomial exactness of generalized Gauss-Laguerre quadrature rules.
  146. int_exactness_hermite, a program which tests the polynomial exactness of Gauss-Hermite quadrature rules.
  147. int_exactness_jacobi, a program which tests the polynomial exactness of Gauss-Jacobi quadrature rules.
  148. int_exactness_laguerre, a program which tests the polynomial exactness of Gauss-Laguerre quadrature rules.
  149. int_exactness_legendre, a program which tests the polynomial exactness of Gauss-Legendre quadrature rules.
  150. ivcon, a program which converts between various 3D graphic file formats;
  151. jacobi_rule, a program which computes and writes out a Gauss-Jacobi quadrature rule of given order.
  152. joinup is a program which restores the original file from the fixed-size pieces created by SPLITUP.
  153. keast, a library which defines Keast quadrature rules in a tetrahedron;
  154. laguerre_rule, a program which computes and writes out a Gauss-Laguerre quadrature rule of given order.
  155. latin_center, a library which computes Latin Center Squares of N points in M dimensions;
  156. latin_edge, a library which computes Latin Edge Squares of N points in M dimensions;
  157. latin_random, a library which computes Latin Random Squares of N points in M dimensions;
  158. latinize, a library which adjusts N points in M dimensions to form a Latin Hypercube;
  159. lattice, a library which returns lattice rules for multiple integration;
  160. lcvt, a library which creates a sort of "Latinized" CVT (Centroidal Voronoi Tessellation);
  161. lcvt_dataset, a program which creates a "Latinized" CVT (Centroidal Voronoi Tessellation);
  162. legendre_rule, a program which writes out a Gauss-Legendre quadrature rule of given order.
  163. legendre_rule_fast, a program which uses a fast (order N) algorithm to compute a Gauss-Legendre quadrature rule of given order.
  164. lf2cr, a program which converts linefeeds to carriage returns in a file;
  165. lf2crlf, a program which converts linefeeds to carriage return + linefeeds in a file;
  166. lfrm, a program which removes all linefeed characters from a file;
  167. 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.
  168. linpack_bench, a program which is a version of the LINPACK benchmark program;
  169. linpack_c, a library which factors matrices in a variety of formats, and solving the associated linear systems, using single precision complex arithmetic;
  170. linpack_d, a library which factors matrices in a variety of formats, and solving the associated linear systems, using double precision real arithmetic;
  171. linpack_s, a library hich factors matrices in a variety of formats, and solving the associated linear systems, using single precision real arithmetic;
  172. linpack_z, a library which factors matrices in a variety of formats, and solving the associated linear systems, using double precision complex arithmetic;
  173. linplus, a library which factors/solves/multiplies matrices in a variety of formats;
  174. lissajous_open_gl, a program which computes a Lissajous curve and displays it using OpenGL.
  175. machar, a library which dynamically computes the value of various machine characteristic constants;
  176. machine, a library which returns tabulated values of the constants associated with computer arithmetic
  177. makefiles, examples which illustrate the use of MAKEFILES for maintaining a software project;
  178. md is a program which carries out a molecular dynamics simulation, and is intended as a starting point for implementing an OpenMP parallel version.
  179. md_open_mp a program which carries out a molecular dynamics simulation using OpenMP.
  180. memory_test, a program which tests the memory available on the computer by declaring and using big vectors.
  181. 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.
  182. mesh_display_open_gl, a program which reads data defining a polygonal mesh and displays it using OpenGL.
  183. mgmres, a library which applies the restarted GMRES algorithm to a sparse linear system;
  184. mixed, examples which illustrate mixed language programming in which the main program is written in C++;
  185. mpi, examples which illustrate the use of the MPI Message Passing Interface library, for parallel programming;
  186. mpi_ithaca, programs which illustrate the use of PBS scripts for submitting MPI jobs on Virginia Tech's ITHACA cluster.
  187. mpi_stubs, a library which may be used if a parallel program is to be compiled, loaded and run in a serial machine;
  188. mpi_sysx, examples which illustrate the use of PBS scripts for submitting MPI jobs to System X.
  189. 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.
  190. mxv_open_mp, a program which compares the performance of the matrix multiplication problem y=A*x, with and without parallelization by OpenMP.
  191. my_calendar, a program which checks a calendar file and prints any line containing the current date;
  192. my_complex, a C++ class for complex numbers;
  193. nast2d, a program which applies the 2D finite volume method to solve transient Navier Stokes flow, by Griebel, Dornseifer and Neunhoffer;
  194. ncc_tetrahedron, a library which defines Newton-Cotes closed quadrature rules in a tetrahedron;
  195. ncc_triangle, a library which defines Newton-Cotes closed quadrature rules in a triangle;
  196. nco_tetrahedron, a library which defines Newton-Cotes open quadrature rules in a tetrahedron;
  197. nco_triangle, a library which defines Newton-Cotes open quadrature rules in a triangle;
  198. 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.
  199. niederreiter, a library which computes elements of the Niederreiter quasirandom M dimensional sequence [arbitrary base];
  200. niederreiter2, a library which computes elements of the Niederreiter multi-dimensional quasirandom sequence using base 2;
  201. nint_exactness, a program which tests the polynomial exactness of a multidimensional quadrature rule defined over a finite rectangular product region.
  202. nint_exactness_mixed a program which measures the polynomial exactness of a multidimensional quadrature rule based on a mixture of 1D quadrature rule factors.
  203. nint_exactness_pyramid is a program which investigates the polynomial exactness of a quadrature rule for the pyramid.
  204. nint_exactness_tet, a program which tests the polynomial exactness of a quadrature rule for the tetrahedron;
  205. nint_exactness_tri, a program which tests the polynomial exactness of a quadrature rule for the triangle;
  206. nintlib, a library which implements approximate integration (quadrature) in multiple dimensions;
  207. normal, a library which generates pseudorandom normal numbers;
  208. open_gl, examples which illustrate the use of the OpenGL graphics library;
  209. open_mp, examples which illustrate the use of the OpenMP interface for parallel programming shared memory system;
  210. open_mp_ithaca C programs which illustrate the use of OpenMP on the Virginia Tech ITHACA cluster.
  211. open_mp_sgi, examples which illustrate the use of OpenMP with C++ programs on the Virginia Tech SGI systems.
  212. 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.
  213. owens a library which evaluates Owen's T function;
  214. pages, a program which counts the number of pages (sets of 60 lines) in a file;
  215. patterson_rule, a program which looks up and writes out a Gauss-Patterson quadrature rule of given order.
  216. pbma_io, a library which reads or writes an ASCII PBM bit map graphics file;
  217. pbmb_io, a library which reads or writes a binary PPM bit map graphics file;
  218. pcl_read, a program which reads a PCL file and extracts the numeric data;
  219. petsc, examples which illustrate the use of the Portable Extensible Toolkit for Scientific Computations;
  220. pgma_io, a library which reads or writes an ASCII PGM gray map graphics file;
  221. pgma_to_pgmb, a program which converts an ASCII PGM file to a binary PGM file;
  222. pgmb_io, a library which reads or writes a binary PGM file, a 2D gray map graphics format;
  223. pgmb_to_pgma, a program which converts a binary PGM file; to a ASCII PGM file;
  224. 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).
  225. png_crc, a program which computes the CRC (cyclic redundancy checksum) for a PNG graphics file (or any other file, for that matter);
  226. polpak, a library which evaluates recursively defined polynomials, and other special functions;
  227. polygonal_surface_display_open_gl a program which displays a surface in 3D described as a set of polygons using OpenGL;
  228. power_method a library which carries out the power method for finding a dominant eigenvalue and its eigenvector.
  229. ppma_io, a library which reads or writes an ASCII PPM file pixel map graphics file;
  230. ppma_to_bmp, a program which converts an ASCII PPM file to a Microsoft BMP file;
  231. ppma_to_ppmb, a program which converts an ASCII PPM file to binary PPM format;
  232. ppmb_io, a library which reads or writse a binary PPM 2D pixel map graphics file;
  233. ppmb_to_bmp, a program which converts a binary PPM file to a Microsoft BMP file;
  234. ppmb_to_ppma, a program which converts a binary PPM file to ASCII PPM format
  235. prime_number is a program which counts the number of primes between 1 and N.
  236. prime_number_mpi is a program which counts the number of primes between 1 and N, using MPI for parallel execution.
  237. prime_number_open_mp is a program which counts the number of primes between 1 and N, using OpenMP for parallel execution.
  238. prob, a library which evaluates the PDF, CDF, mean, variance and samples of various probability distributions;
  239. product_factor, a program which creates a multidimensional quadrature rule from a product of distinct 1d quadrature rules;
  240. product_rule, a program which creates a multidimensional quadrature rule from a product of identical 1d quadrature rules;
  241. pthreads, examples which illustrate the use of the POSIX thread library to carry out parallel program execution.
  242. pyramid_rule, is a program which computes a quadrature rule for a pyramid.
  243. quad_mesh, a library which handles meshes of quadrilaterals over a 2D region;
  244. quad_mesh_rcm, a program which computes the reverse Cuthill-McKee (RCM) reordering for nodes in a mesh of 4-node quadrilaterals.
  245. quad_mpi, a program which applies a quadrature rule to estimate an integral, working in parallel by using MPI;
  246. quad_open_mp, a program which applies a quadrature rule to estimate an integral, working in parallel by using OpenMP;
  247. 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.
  248. 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.
  249. quadrule, a library which defines quadrature rules for approximating integrals;
  250. quality, a library which computes quality of distribution measures for pointsets in M dimensions;
  251. rand48, a program which demonstrates the use of the RAND48 family of random number generators available in the C/C++ standard library.
  252. random_data, a library which generates sample points for various probability distributions, spatial dimensions, and geometries;
  253. 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.
  254. 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;
  255. recomment, a program which converts C style comments to C++ style;
  256. region_sample, a library which returns sample points from a region;
  257. reword, a program which makes a copy of a file in which every line has the same number of "words";
  258. rkf45, a library which applies the Runge-Kutta-Fehlberg algorithm to solve a system of ordinary differential equations;
  259. rot13, a program which makes a copy of a file which has been encoded using the ROT13 coding (and a ROT5 coding for digits).
  260. rotating_cube_display_open_gl a program which displays a rotating color cube in 3D, using OpenGL;
  261. rsites, a program which generates random pointsets with integer coordinates for testing computational geometry algorithms;
  262. 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.
  263. 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.
  264. satisfiability is a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem.
  265. 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.
  266. 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.
  267. sgefa_open_mp, a program which compares a standard linear algebra solver against a revised version which can be run in parallel with OpenMP.
  268. sgmga, a library which creates sparse grids based on a mixture of 1D quadrature rule families, allowing user specified growth rates for each family, allowing anisotropic weights for each dimension.
  269. simple_ga, a program which is a simple example of a genetic algorithm.
  270. sobol, a library which computes elements of the Sobol multi-dimensional quasirandom sequence, extended to a maximal spatial dimension of 1111;
  271. sobol_old, a library which computes elements of the Sobol multi_dimensional quasirandom sequence, restricted to a maximal spatial dimension of 40;
  272. sparse_grid_cc, a library of routines which creates sparse grids based on Clenshaw-Curtis rules.
  273. sparse_grid_cc_dataset, a program which creates a sparse grid dataset based on Clenshaw-Curtis rules.
  274. sparse_grid_closed, a library of routines which creates sparse grids based on closed rules (Clenshaw-Curtis, Newton-Cotes-Closed).
  275. sparse_grid_closed_dataset, a program which creates of a sparse grid dataset based on closed rules (Clenshaw-Curtis, Newton-Cotes-Closed).
  276. sparse_grid_gl, a library which creates sparse grids based on Gauss-Legendre rules.
  277. sparse_grid_gl_dataset, a program which creates a sparse grid dataset based on Gauss-Legendre rules.
  278. sparse_grid_hermite, a library which creates sparse grids based on Gauss-Hermite rules.
  279. sparse_grid_hermite_dataset, a program which creates a sparse grid dataset based on Gauss-Hermite rules.
  280. sparse_grid_laguerre, a library which creates sparse grids based on Gauss-Laguerre rules.
  281. sparse_grid_laguerre_dataset, a program which creates a sparse grid dataset based on Gauss-Laguerrre rules.
  282. sparse_grid_mixed, a library which creates sparse grids based on a mixture of 1D factor rules.
  283. 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.
  284. sparse_grid_open, a library which creates sparse grids based on open rules (Fejer 2, Gauss-Patterson, Newton-Cotes-Open).
  285. sparse_grid_open_dataset, a program which creates a sparse grid dataset based on open rules (Fejer 2, Gauss-Patterson, Newton-Cotes-Open).
  286. 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.
  287. spline, a library which interpolates or approximates data by piecewise polynomial functions;
  288. splitup is a program which splits a file into fixed-size pieces.
  289. stla_io, a library which reads and writes ASCII STL (stereolithography) 3d graphics files;
  290. stroud, a library which defines rules for numerical integration (quadrature) over M dimensional regions, including spheres, toruses and other shapes;
  291. subpak, a library which contains many utility routines;
  292. subset, a library which ranks, unranks and generates random subset, combinations, permutations and other combinatorial objects;
  293. 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;
  294. svd_basis, a program which applies the singular value decomposition to a set of vectors, to extract the dominant modes;
  295. svd_demo, a program which demonstrates the calculation of the singular value decomposition and some of its properties;
  296. table_border, a program which reads a TABLE file of 2D data, and adds data representing a boundary layer of zero values;
  297. table_delaunay, a program which computes the Delaunay triangulation of a set of points stored as a TABLE file;
  298. 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;
  299. table_io, a library which reads and writes a simple dataset stored as a TABLE file;
  300. 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;
  301. 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;
  302. table_unborder, a program which reads a TABLE file of 2D data and deletes the data representing the boundary layer;
  303. table_voronoi, a program which reads a set of 2D points from a TABLE file, and prints information about the Voronoi diagram;
  304. tanh_quad, a library which sets up the tanh quadrature rule;
  305. tanh_sinh_rule, a program which computes and writes out a tanh-sinh quadrature rule of given order.
  306. test_int_2d, a library which implements test problems for approximate integration (quadrature) in two dimensions.
  307. test_int_hermite, a library which implements test problems for approximate integration over an infinite interval, often carried out using Gauss-Hermite quadrature.
  308. test_int_laguerre, a library which implements test problems for approximate integration over a semi-infinite interval, often carried out using Gauss-Laguerre quadrature.
  309. test_mat, a library which implements test matrices.
  310. test_min, a library which implements test problems for minimization of a scalar function of a scalar variable.
  311. test_nint, a library which implements test problems for approximate integration (quadrature) in M dimensions.
  312. test_tri_int, a library which implements test functions for integration over a triangle in 2 dimensions.
  313. 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;
  314. testpack, a program which demonstrates the use of a set of test integrand functions chosen by Alan Genz.
  315. tet_mesh, a library which works with tetrahedral meshes in 3D;
  316. tet_mesh_display_open_gl, a program which reads two files describing a tetrahedral mesh in 3D and displays it using OpenGL.
  317. 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;
  318. 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;
  319. tet_mesh_quality, a program which reads a node coordinate file and a tetrahedron file and returns quality measures for the tetrahedronal mesh;
  320. 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;
  321. tet_mesh_refine, a program which refines a tet mesh;
  322. 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;
  323. tet_mesh_volumes is a program which computes the volume of each tetrahedron in a tet mesh;
  324. tetrahedron_monte_carlo, a program which uses the Monte Carlo method to estimate an integral over a tetrahedron.
  325. tetrahedron_properties, a program which prints out the properties of a tetrahedron whose vertex coordinates are read from a file;
  326. tga_io, a library which reads a TGA or TARGA graphics file;
  327. tiler_3d, a library which blends a pattern repeatedly into a region in 3D;
  328. timer, examples which measure the CPU time used by a portion of a user's program;
  329. timestamp, a library which prints the current YMDHMS date as a timestamp, and other timekeeping operations;
  330. 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.
  331. toms179 a library which calculates the incomplete Beta ratio;
    this is a C++ version of ACM TOMS algorithm 179.
  332. toms291 a library which approximates the logarithm of the Gamma function;
    this is a C++ version of ACM TOMS algorithm 291.
  333. tri_surface_io, a library which reads and writes the 3D graphics information in an TRI_SURFACE file;
  334. triangle_histogram, a program which computes histograms of data on the unit triangle.
  335. triangle_monte_carlo, a program which uses the Monte Carlo method to estimate an integral over a triangle.
  336. triangle_properties, a program which computes properties of a triangle whose vertex coordinates are read from a file.
  337. 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;
  338. 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;
  339. triangulation_corner, a program which modifies triangulations in which one or more triangles have more than one boundary edge.
  340. triangulation_delaunay_discrepancy is a program which measures the amount by which a triangulation fails the local Delaunay test;
  341. triangulation_display_open_gl, a program which reads two files describing a triangulation and displays it using OpenGL.
  342. triangulation_histogram, a program which computes histograms of data over a triangulation.
  343. triangulation_l2q, a program which reads information about a 3-node (linear) triangulation and creates data defining a corresponding 6-node (quadratic) triangulation;
  344. triangulation_mask, a program which reads a triangulation and calls a user-supplied routine to consider each triangle for deletion;
  345. triangulation_orient, a program which ensures that the triangles in an order 3 or order 6 triangulation have positive orientation;
  346. triangulation_plot, a program which plots the nodes and elements of a triangulation as a PostScript file;
  347. triangulation_q2l, a program which reads information about a 6-node triangulation and creates data defining a corresponding 3-node triangulation;
  348. triangulation_quad, a program which reads information about a triangulation and the value of a function at the nodes and estimates the integral of the function over the triangulated region.
  349. triangulation_quality, a program which reads information about a triangulation and computes various quality measures;
  350. 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;
  351. triangulation_refine, a program which refines a triangulation;
  352. 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);
  353. 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;
  354. uncontrol, a program which removes control characters from a file;
  355. uniform, a library which generates uniform pseudorandom numbers;
  356. uniform_dataset, a program which creates a file of uniform pseudorandom values;
  357. van_der_corput, a library which evaluates the van der Corput 1-dimensional quasirandom sequence;
  358. van_der_corput_dataset, a program which creates a file of van der Corput values;
  359. vector_read, a library which reads, one line at a time, numeric data, storing it in a vector returned to the user;
  360. wandzura, a library which returns a Wandzura rule for quadrature in a triangle;
  361. width, a program which returns the length and location of the longest line in a text file;
  362. wrap, a program which "wraps" a file so that no line is longer than 80 characters;
  363. 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;
  364. wtime is a library which returns a reading of the wall clock time in seconds.
  365. x_window, examples which illustrate the use of the X Window graphical terminal system;
  366. xy_display_open_gl, a program which reads XY information defining points in 2D and displays an image using OpenGL;
  367. xy_io, a library which reads and writes XY, XYL and XYF files defining points, lines and faces in 2D.
  368. xyf_display_open_gl, a program which reads XYF information defining points and faces in 2D and displays an image using OpenGL;
  369. xyl_display_open_gl, a program which reads XYL information defining points and lines in 2D and displays an image using OpenGL;
  370. xyz_display_open_gl, a program which reads XYZ information defining points in 3D and displays an image using OpenGL;
  371. xyz_io, a library which reads and writes XYZ, XYZL and XYZF files defining points, lines and faces in 3D.
  372. xyzf_display_open_gl, a program which reads XYZF information defining points and faces in 3D and displays an image using OpenGL;
  373. xyzl_display_open_gl, a program which reads XYZL information defining points and lines in 3D and displays an image using OpenGL;
  374. ziggurat, a library which samples the uniform, normal or exponential distributions, using the ziggurat method.
  375. ziggurat_open_mp, a program which demonstrates how the ZIGGURAT library can be used to generate random numbers in an OpenMP parallel program.
  376. 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.