Skip to content

latifkabir/Computation_using_C

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computation with C

  1. args, a program which reports the command line arguments with which it was invoked;
  2. asa005, a library which evaluates the lower tail of the noncentral Student's T distribution, by BE Cooper; this is a C version of Applied Statistics Algorithm 5;
  3. asa006, a library which computes the Cholesky factor of a positive definite symmetric matrix, by Michael Healy; this is a C version of Applied Statistics Algorithm 6;
  4. asa007, a library which computes the inverse of a positive definite symmetric matrix, by Michael Healy; this is a C version of Applied Statistics Algorithm 7,
  5. asa032, a library which evaluates the incomplete Gamma function, by G Bhattacharjee; this is a C version of Applied Statistics Algorithm 32;
  6. asa047, a library which minimizes a scalar function of several variables using the Nelder-Mead algorithm, by R ONeill; this is a C version of Applied Statistics Algorithm 47;
  7. asa058, a library which carries out K-means clustering of data, by David Sparks; this is a C version of Applied Statistics Algorithm 58;
  8. asa063, a library which evaluates the incomplete Beta function, by KL Majumder and G Bhattacharjee; this is a C version of Applied Statistics Algorithm 63;
  9. asa066, a library which computes the Cumulative Density Function (CDF) of the standard normal distribution, by David Hill; this is a C version of Applied Statistics Algorithm 66;
  10. asa076, a library which evaluates Owen's T function, by Young and Minder; this is a C version of Applied Statistics Algorithm 76;
  11. asa091, a library which computes the percentage points of the Chi-square distribution, by Best and Roberts; this is a C version of Applied Statistics Algorithm 91;
  12. asa103, a library which evaluates the digamma or psi function, by Jose Bernardo; this is a C version of Applied Statistics Algorithm 103;
  13. asa109, a library which inverts the incomplete Beta function, by Cran, Martin and Thomas; this is a C version of Applied Statistics Algorithm 109;
  14. asa111, a library which evaluates the percentage points of the normal distribution, by Beasley and Springer; this is a C version of Applied Statistics Algorithm 111;
  15. asa113, a library which clusters data using a transfer and swap algorithm, by Banfield and Bassill; this is a C version of Applied Statistics Algorithm 113;
  16. asa121, a library which evaluates the trigamma function, by BE Schneider; this is a C version of Applied Statistics Algorithm 121;
  17. asa136, a library which implements a clustering algorithm, by Hartigan and Wong; this is a C version of Applied Statistics Algorithm 136;
  18. asa144, a library which randomly generates tables with given row and column sums, by James Boyett; this is a C version of Applied Statistics Algorithm 144;
  19. asa147, a library which evaluates the incomplete Gamma function, by Chi Leung Lau; this is a C version of Applied Statistics Algorithm 147;
  20. asa152, a library which evaluates the probability density function (PDF) and cumulative density function (CDF) associated with the hypergeometric distribution, by Richard Lund; this is a C version of Applied Statistics Algorithm 152;
  21. asa159, a library which computes a random table with given row and column sums, by Michael Patefield; this is a C version of Applied Statistics Algorithm 159;
  22. asa172, a library which generates all multidimensional indices in a given range, simulating the behavior of an arbitrary number of nested loops, by OFlaherty and MacKenzie. this is a C version of Applied Statistics Algorithm 172;
  23. asa183, a library which implements a pseudorandom number generator, by Wichman and Hill; this is a C version of Applied Statistics Algorithm 183;
  24. asa226, a library which evaluates the noncentral incomplete Beta function, by Russell Lenth; this is a C version of Applied Statistics Algorithm 226;
  25. asa239, a library which evaluates the incomplete Gamma function, by Shea; this is a C version of Applied Statistics Algorithm 239;
  26. asa241, a library which computes the inverse of the normal cumulative density function (CDF), by Michael Wichura; this is a C version of Applied Statistics Algorithm 241;
  27. asa243, a library which evaluates the lower tail of the noncentral Student's T distribution, by Russell Lenth; this is a C version of Applied Statistics Algorithm 243;
  28. asa245, a library which evaluates the logarithm of the Gamma function, by Allan Mcleod; this is a C version of Applied Statistics Algorithm 245;
  29. asa299, a library which computes the lattice points (integer coordinates) in an M-dimensional simplex, by Chasalow and Brand; this is a C version of Applied Statistics Algorithm 299;
  30. asa310, a library which evaluates the noncentral incomplete Beta function, by Chattamvelli and Shanmugam; this is a C version of Applied Statistics Algorithm 310;
  31. ascii_to_mri, a program which restores MRI data to its original binary format, having been previously converted to an ASCII text file.
  32. ball_grid, a library which computes grid points inside a 3D ball.
  33. ball_volume_monte_carlo, a program which applies a Monte Carlo procedure to estimate the volume of the M-dimensional unit ball;
  34. barycentric_interp_1d, a library which defines and evaluates the barycentric Lagrange polynomial p(x) which interpolates a set of data, so that p(x(i)) = y(i). The barycentric approach means that very high degree polynomials can safely be used.
  35. bernstein, a library which evaluates the Bernstein polynomials;
  36. beta_nc, a library which evaluates the cumulative density function (CDF) of the noncentral Beta distribution;
  37. bio, a library which manages binary I/O, by Greg Hood.
  38. bisection_integer, a library which seeks an integer solution to the equation F(X)=0, using bisection within a user-supplied change of sign interval [A,B].
  39. black_scholes, a library which implements some simple approaches to the Black-Scholes option valuation theory, by Desmond Higham.
  40. blas1, a library which contains the Basic Linear Algebra Subprograms (BLAS) for level 1 (vector-vector operations), for single and double precision, and for real and complex arithmetic.
  41. blas1_c, a library of the Level 1 Basic Linear Algebra Subprograms (BLAS), using single precision complex arithmetic;
  42. blas1_d, a library of the Level 1 Basic Linear Algebra Subprograms (BLAS), using double precision real arithmetic;
  43. blas1_s, a library of the Level 1 Basic Linear Algebra Subprograms (BLAS), using single precision real arithmetic;
  44. blas1_z, a library of the Level 1 Basic Linear Algebra Subprograms (BLAS), using double precision complex arithmetic;
  45. 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;
  46. brent, a library which contains routines for finding zeroes or minima of a scalar function of a scalar variable, without the use of derivative information, by Richard Brent.
  47. brownian_motion_simulation, a library which simulates Brownian motion in an M-dimensional region.
  48. burgers_solution, a library which evaluates an exact solution of the time-dependent 1D viscous Burgers equation.
  49. c, programs which illustrate some of the features of the C programming language.
  50. c_arrays, programs which illustrate the use of vectors, matrices and tensors.
  51. c_calls_f77, programs which illustrate a C program calling a FORTRAN77 subroutine.
  52. c_calls_f90, programs which illustrate a C program calling a FORTRAN90 subroutine.
  53. c_intrinsics, a program which illustrates the use of intrinsic functions supplied by the C language.
  54. c_operators, a program which illustrates the use of some of the operators supplied by the C language.
  55. c_random, programs which illustrate the use of the C random number generator routines.
  56. c4_complex_lib, a library which defines a single precision complex (C4) variable as a structure, and implements certain corresponding elementary functions.
  57. c4lib, a library which implements certain elementary functions for single precision complex (C4) variables using the C99 "float complex" datatype.
  58. c8_complex_lib, a library which defines a double precision complex (C8) variable as a structure, and implements certain corresponding elementary functions.
  59. c8lib, a library which implements certain elementary functions for double precision complex (C8) variables using the C99 standard "double complex" datatype.
  60. cell, a library which defines a cell array, a generalization of an array which can compactly store and retrieve vector or matrix data of varying size, such as the rows of a triangular matrix.
  61. chebyshev, a library which computes the Chebyshev interpolant or approximant to a given function over an interval.
  62. chebyshev_interp_1d, a library which determines the combination of Chebyshev polynomials which interpolates a set of data, so that p(x(i)) = y(i).
  63. chrpak, a library which can manipulate characters and strings;
  64. circle_arc_grid, a library which computes grid points along a circular arc.
  65. circle_grid, a library which computes grid points inside a circle.
  66. clenshaw_curtis_rule, a program which implements a Clenshaw Curtis quadrature rule;
  67. cnoise, a library which generates samples of noise obeying a 1/f^alpha power law, by Miroslav Stoyanov.
  68. collatz_recursive, a library which demonstrates recursive programming by considering the simple Collatz 3n+1 problem.
  69. colored_noise, a library which generates samples of noise obeying a 1/f^alpha power law.
  70. combination_lock, a library which simulates the process of determining the secret combination of a lock.
  71. combo, a library which includes routines for ranking, unranking, enumerating and randomly selecting balanced sequences, cycles, graphs, Gray codes, subsets, partitions, permutations, restricted growth functions, Pruefer codes and trees.
  72. communicator_mpi, a program which creates new communicators involving a subset of initial set of MPI processes in the default communicator MPI_COMM_WORLD.
  73. compass_search, a library which seeks the minimizer of a scalar function of several variables using compass search, a direct search algorithm that does not use derivatives.
  74. complex_numbers, a program which demonstrates some simple features involved in the use of complex numbers in C programming.
  75. condition, a library which implements methods of computing or estimating the condition number of a matrix.
  76. cordic, a library which computes a few special functions using the CORDIC algorithm.
  77. correlation, a library which contains examples of statistical correlation functions.
  78. csparse, a library which carries out the direct solution of sparse linear systems, by Timothy Davis.
  79. cycle_brent, a library which carries out an iterated function evaluation, and seeks to determine the nearest element of a cycle, and the cycle's length, using Brent's method.
  80. cycle_floyd, a library which carries out an iterated function evaluation, and seeks to determine the nearest element of a cycle, and the cycle's length, using Floyd's method.
  81. cyclic_reduction, a library which solves a tridiagonal linear system using cyclic reduction;
  82. diaphony, a program which reads a file of N points in M dimensions and computes its diaphony, a measure of point dispersion.
  83. dijkstra, a program which runs a simple example of Dijkstra's minimum distance algorithm for graphs.
  84. dijkstra_openmp, a program which uses OpenMP to parallelize a simple example of Dijkstra's minimum distance algorithm for graphs.
  85. dislin, programs which illustrate the use of dislin, a scientific graphics package.
  86. divdif, a library which uses divided differences to compute the polynomial interpolant to a given set of data.
  87. doomsday, a library which is given the year, month and day of a date, and uses John Conway's doomsday algorithm to determine the corresponding day of the week.
  88. duel_simulation, a program which simulates N repetitions of a duel between two players, each of whom has a known firing accuracy.
  89. eispack, a library which carries out eigenvalue computations. It includes a function to compute the singular value decomposition (SVD) of a rectangular matrix. This library was superseded by LAPACK;
  90. ellipse_grid, a library which computes grid points inside an ellipse.
  91. ellipsoid_grid, a library which computes grid points inside a 3D ellipsoid.
  92. f77split, a program which splits a file containing multiple FORTRAN77 routines into separate files;
  93. f90split, a program which splits a file containing multiple FORTRAN90 routines into separate files;
  94. fair_dice_simulation, a program which simulates N tosses of 2 dice, making a histogram of the results.
  95. fd_predator_prey, a program which solves a pair of predator prey ordinardy differential equations (ODE's) using a finite difference approximation.
  96. fd1d_burgers_lax, a program which applies the finite difference method and the Lax Wendroff method to solve the non-viscous time-dependent Burgers equation in one spatial dimension.
  97. fd1d_burgers_leap, a program which applies the finite difference method and the leapfrog approach to solve the non-viscous time-dependent Burgers equation in one spatial dimension.
  98. fd1d_bvp, a program which applies the finite difference method to a two point boundary value problem in one spatial dimension.
  99. fd1d_heat_explicit, a library which implements a finite difference solution, explicit in time, of the time dependent 1D heat equation;
  100. fd1d_heat_implicit, a program which implements a finite difference solution, implicit in time, of the time dependent 1D heat equation;
  101. fd1d_heat_steady, a program which implements a finite difference solution for the steady (time independent) 1D heat equation;
  102. fd1d_wave, a program which applies the finite difference method to solve the time-dependent wave equation in one spatial dimension.
  103. fem1d, a program which applies the finite element method, using piecewise linear basis functions, to a linear two point boundary value problem in 1D;
  104. fem1d_bvp_linear, a program which applies the finite element method, with piecewise linear elements, to a two point boundary value problem in one spatial dimension, and compares the computed and exact solutions with the L2 and seminorm errors.
  105. fem1d_heat_steady, a program which implements the finite element method for the steady (time independent) 1D heat equation;
  106. fem2d_poisson_rectangle_linear, a program which solves the 2D Poisson equation on a rectangle, using the finite element method, and piecewise linear triangular elements.
  107. feynman_kac_1d, a program which demonstrates the use of the Feynman-Kac algorithm to solve Poisson's equation in a 1D interval by averaging stochastic paths to the boundary.
  108. feynman_kac_2d, a program which demonstrates the use of the Feynman-Kac algorithm to solve Poisson's equation in a 2D ellipse by averaging stochastic paths to the boundary.
  109. feynman_kac_3d, a program which demonstrates the use of the Feynman-Kac algorithm to solve Poisson's equation in a 3D ellipsoid by averaging stochastic paths to the boundary.
  110. fft_openmp, a program which demonstrates the computation of a Fast Fourier Transform (FFT) in parallel, using OpenMP.
  111. fft_serial, a program which computes a Fast Fourier Transform (FFT), and is intended as a starting point for implementing an OpenMP parallel version.
  112. fftw3, programs which illustrate the use of FFTW3, a library of routines for the Fast Fourier Transform (FFT), by Matteo Frigo and Steven Johnson.
  113. file_name_sequence, a program which demonstrates ways to generate a sequence of filenames, which can be useful when generating a sequence of still snapshots to be animated later.
  114. filum, a library which performs various operations with files;
  115. flood_opengl, a program which uses OpenGL to allow the user to select regions of an image and flood them with color, by Art Wetzel.
  116. floyd, a library which implements Floyd's algorithm for finding the shortest distance between pairs of nodes on a directed graph.
  117. fn, a library which evaluates elementary and special functions, by Wayne Fullerton.
  118. forest_fire_simulation, a program which models the occurrence of fires in a forest, and displays the status of the forest using X Windows, by Michael Creutz.
  119. gcc_intrinsics, a program which demonstrates or tests some of the intrinsic functions made available by the Gnu gcc compiler for C.
  120. gcc_quadmath, a program which illustrates the use of quadruple precision real arithmetic, as provided on some systems by the Gnu gcc compiler for C.
  121. geometry, a library which carries out geometrical algorithms for 2D, 3D, ND;
  122. geompack, a library which computes the Delaunay triangulation of 2D data, by Barry Joe;
  123. gm_rule, a library which defines Grundmann-Moeller quadratures rules for an M-dimensional simplex.
  124. gnuplot_i, a library which allows an executing C, C++ or FORTRAN program to interact with the gnuplot graphics program, by Nicholas Devillard.
  125. gnuplot_i_examples, programs which demonstrate the use of the gnuplot_i library for interactive runtime gnuplot graphics.
  126. gprof, programs which illustrate the use of the gprof program performance monitor;
  127. graphchk, a program which checks that a metis graph file has the proper format;
  128. graphics_examples, programs which illustrate how various kinds of data can be displayed and analyzed graphically.
  129. haar, a library which computes the Haar transform of data.
  130. heat_mpi, a program which demonstrates the use of MPI, by solving the 1D time dependent heat equation.
  131. heated_plate, 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.
  132. heated_plate_openmp, a program which solves the steady (time independent) heat equation in a 2D rectangular region, using OpenMP to run in parallel.
  133. hello, a program which prints out "Hello, world!".
  134. hello_mpi, a program which prints out "Hello, world!" using MPI for parallel programming.
  135. hello_openmp, a program which prints out "Hello, world!" within the OpenMP parallel programming environment.
  136. hermite, a library which computes the Hermite interpolant, a polynomial that matches function values and derivatives.
  137. hermite_cubic, a library which can compute the value, derivatives or integral of a Hermite cubic polynomial, or manipulate an interpolating function made up of piecewise Hermite cubic polynomials.
  138. i4lib, a library which contains many utility routines, using single precision integer (I4) arithmetic.
  139. i8lib, a library which contains many utility routines, using double precision integer (I8) arithmetic.
  140. ice_io, a library which reads or writes ICE grid files stored in netcdf format.
  141. ice_to_mesh, a program which reads a netcdf file containing an ICE dataset and rewrites the information as a MESH file.
  142. image_components, a library which seeks the connected nonzero or nonblack components of an image or integer array.
  143. image_denoise, a library which applies simple filtering operations to a noisy image.
  144. image_edge, a library which demonstrates a simple procedure for edge detection in images.
  145. index, a library which converts a multidimensional vector index to a one-dimensional vector index; it can handle zero and one based indexing schemes, as well as column major and row major conventions.
  146. is_serial, a program which is a serial version of the NAS Parallel Benchmark Integer Sort (IS).
  147. ising_2d_simulation, a program which simulates the evolution of a 2D array of positive and negative charges, each of which is likely to flip to be in agreement with neighbors.
  148. kmetis, a program which uses the metis library to partition the nodes of a graph in a balanced way, useful for parallel processing;
  149. kronrod, a library which can compute a Gauss and Gauss-Kronrod pair of quadrature rules of arbitrary order, by Robert Piessens, Maria Branders.
  150. lagrange_approx_1d, a library which defines and evaluates the Lagrange polynomial p(x) of degree m which approximates a set of nd data points (x(i),y(i)).
  151. lagrange_interp_1d, a library which defines and evaluates the Lagrange polynomial p(x) which interpolates a set of data depending on a 1D argument, so that p(x(i)) = y(i).
  152. lagrange_interp_2d, a library which defines and evaluates the Lagrange polynomial p(x,y) which interpolates a set of data depending on a 2D argument that was evaluated on a product grid, so that p(x(i),y(j)) = z(i,j).
  153. lagrange_interp_nd, a library which defines and evaluates the Lagrange polynomial p(x) which interpolates a set of data depending on a multidimensional argument that was evaluated on a product grid, so that p(x(i)) = z(i).
  154. laplace_mpi, a program which solves Laplace's equation on a rectangle, using MPI for parallel execution.
  155. latin_cover, a library which produces N Latin squares which cover an NxN square, or NxN Latin cubes which cover an NxNxN cube.
  156. latinize, a library which adjusts N points in M dimensions to form a Latin Hypercube;
  157. legendre_rule_fast, a program which uses a fast (order N) algorithm to compute a Gauss-Legendre quadrature rule of given order.
  158. life_opengl, a program which uses OpenGL to display the evolution of John Conway's Game of Life, by Simon Green.
  159. lights_out_opengl, a program which sets up a Lights Out game and allows the user to solve it, using the OpenGL graphics window.
  160. linpack, a library which solves linear systems for a variety of matrix storage schemes, real or complex arithmetic, and single or double precision. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.
  161. linpack_bench, a program which is a version of the LINPACK benchmark program;
  162. linpack_d, a library which factors matrices in a variety of formats, and solving the associated linear systems, using double precision real arithmetic; it includes a function to compute the singular value decomposition (SVD) of a rectangular matrix. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.
  163. linpack_s, a library which factors matrices in a variety of formats, and solving the associated linear systems, using single precision real arithmetic; it includes a function to compute the singular value decomposition (SVD) of a rectangular matrix. The original version of this library is by Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart.
  164. linplus, a library which factors/solves/multiplies matrices in a variety of formats;
  165. llsq, a library which solves the simple linear least squares problem of finding the formula of a straight line y=a*x+b which minimizes the root-mean-square error to a set of N data points.
  166. machar, a library which dynamically computes the values of various machine characteristic constants by William Cody;
  167. machine, a library which returns tabulated values of the constants associated with computer arithmetic
  168. makefiles, programs which illustrate the use of makefiles for maintaining a software project;
  169. mandelbrot, a program which generates an ASCII Portable Pixel Map (PPM) image of the Mandelbrot set;
  170. mandelbrot_ascii, a program which generates an ASCII text image of the Mandelbrot set, using just two lines of C code.
  171. mandelbrot_openmp, a program which generates an ASCII Portable Pixel Map (PPM) image of the Mandelbrot fractal set, using OpenMP for parallel execution;
  172. mandelbrot_ppm, a program which generates a binary Portable Pixel Map (PPM) image of the Mandelbrot set, by Eric Weeks.
  173. matmul, a program which carries out a matrix multiplication benchmark;
  174. matrix_exponential, a library which demonstrates some simple approaches to the problem of computing the exponential of a matrix.
  175. md, a program which carries out a molecular dynamics simulation, and is intended as a starting point for implementing an OpenMP parallel version.
  176. md_openmp, a program which carries out a molecular dynamics simulation in parallel using OpenMP.
  177. memory_test, a program which tests the memory available on the computer by declaring and using big vectors.
  178. mesh_io, a library which can read or write MESH files, which can be used to define the geometry of a finite element mesh in 2D or 3D, using triangles, quadrilaterals, tetrahedrons or hexahedrons.
  179. mesh_to_ice, a program which reads the ICE dataset information from a MESH files and rewrites it to a netcddf file.
  180. mesh2dual, a program which used the metis library to convert a finite element mesh to a dual graph.
  181. mesh2nodal, a program which uses the metis library to convert a finite element mesh to a nodal graph.
  182. mesh_bandwidth, a program which returns the geometric bandwidth associated with a mesh of elements of any order and in a space of M dimensions.
  183. metis, a library which partitions the nodes of a graph or the elements of a mesh, for division among a number of parallel processes, or to reorder the variables in a sparse matrix to minimize fillin;
  184. mgmres, a library which applies the restarted generalized minimum residual (GMRES) algorithm to a sparse linear system, by Lili Ju;
  185. mgs, a library which is an example of legacy code, which the student is encouraged to study, understand, and document. This example is due to Diane O'Leary.
  186. mixed, programs which illustrate the use of mixed language programming in which the main routine is written in C;
  187. mm_io, a library which reads and writes a Matrix Market (MM) Sparse Matrix File;
  188. mpi, programs which illustrate the use of the Message Passing Interface (MPI) library, for parallel programming;
  189. mpi_stubs, a library which may be used if a parallel program is to be compiled, loaded and run in a serial machine.
  190. mri_to_ascii, a program which converts the binary data in a Magnetic Resonance Imaging (MRI) file to ASCII text.
  191. mri_to_pgm, a program which converts the binary data in a Magnetic Resonance Imaging (MRI) file to a sequence of PGM image files.
  192. multigrid_poisson_1d, a library which applies the multigrid method to a discretized version of the 1D Poisson equation.
  193. multitask_mpi, a program which demonstrates how to multitask, that is, to execute several unrelated and distinct tasks simultaneously, using MPI for parallel execution.
  194. multitask_openmp, a program which demonstrates how to multitask, that is, to execute several unrelated and distinct tasks simultaneously, using OpenMP for parallel execution.
  195. mxm, a program which sets up a matrix multiplication problem A=B*C of arbitrary size, and compares the time required for ijk, ikj, jik, jki, kij and kji orderings of the loops.
  196. mxm_openmp, a program which computes a dense matrix product C=A*B, using OpenMP for parallel execution.
  197. mxm_serial, a program which sets up a matrix multiplication problem A=B*C, intended as a starting point for implementing a parallel version.
  198. 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.
  199. mxv_openmp, a program which compares the performance of the matrix multiplication problem y=A*x, with and without parallelization by OpenMP.
  200. nas, a program which runs the NASA kernel benchmark.
  201. nearest_interp_1d, a library which interpolates a set of data using a piecewise constant interpolant defined by the nearest neighbor criterion.
  202. netcdf, programs which read and write netcdf files.
  203. normal, a library which generates pseudorandom normal values;
  204. nsasm, a library which computes the jacobian matrix associated with a finite element approximation of the incompressible steady Navier-Stokes equations in 2D, and to store these as a sparse matrix, by Per-Olof Persson.
  205. obj_to_ply, a program which converts a 3D graphics file from OBJ format to PLY format format, by Greg Turk.
  206. ode, a library which solves a system of ordinary differential equations (ODEs), by Shampine and Gordon;
  207. ode_moshier, a library which implements the Adams-Bashforth-Moulton and Runge-Kutta (RK) methods of solving systems of ordinary differential equations (ODE's), by Steven Moshier.
  208. oemetis, a program which uses the metis library to reorder the variables in a sparse matrix.
  209. onmetis, a program, using the metis library, which can reorder the variables in a sparse matrix.
  210. opengl, programs which illustrate the use of the OpenGL graphics library;
  211. openmp, programs which illustrate the use of the OpenMP interface for parallel programming shared memory system;
  212. openmp_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. optimize, a program which looks at the use of automatic optimization by the compiler to make the executable code run faster.
  214. owens, a library which evaluates Owen's T function;
  215. paranoia, a program which checks the accuracy of the floating point arithmetic on a computer.
  216. partdmesh, a program, using the metis library, which can partition a finite element mesh after constructing the dual graph.
  217. partition_problem, a library which seeks solutions of the partition problem, splitting a set of integers into two subsets with equal sum.
  218. partnmesh, a program, using the metis library, which can partition a finite element mesh after constructing the nodal graph.
  219. pbma_io, a library which reads or writes an ASCII Portable Bit Map (PBM) bit map graphics file;
  220. pbmb_io, a library which reads or writes a binary Portable Bit Map (PBM) graphics file;
  221. pbmlib, a library which reads or writes graphics files in the Portable Bit Map (PBM) format;
  222. pce_burgers, a program which defines and solves a version of the time-dependent viscous Burgers equation, with uncertain viscosity, using a polynomial chaos expansion in terms of Hermite polynomials, by Gianluca Iaccarino.
  223. pce_ode_hermite, a program which sets up a simple scalar ordinary differential equation (ODE) for exponential decay with an uncertain decay rate, using a polynomial chaos expansion in terms of Hermite polynomials.
  224. pcl_read, a program which reads a PCL file and extracts the numeric data;
  225. peri1d, a program which sets up and solves a 1D time-dependent peridynamics problem, by Miroslav Stoyanov;
  226. peri2d, a program which sets up and solves a 2D time-dependent peridynamics problem, by Miroslav Stoyanov;
  227. pgma_io, a library which reads or writes ASCII Portable Gray Map (PGM) 2D graphics files;
  228. pgmb_io, a library which reads or writes a binary Portable Gray Map (PGM) 2D graphics file;
  229. pig_latin, a program which converts its input to Pig Latin; a winner of the International Obfuscated C Code Competition in the Most Humorous category, by Don Dodson;
  230. pink_noise, a library which computes a pink noise signal obeying a 1/f power law.
  231. plato_ply, a program which writes a PLY graphics file for any platonic solid, by Greg Turk.
  232. ply_io, a library which reads or writes a 3D graphics file in PLY format, by Greg Turk;
  233. ply_to_iv, a program which converts a 3D graphics file from PLY format to Inventor (IV) format, by Greg Turk.
  234. ply_to_obj, a program which converts a 3D graphics file from PLY format to OBJ format, by Greg Turk.
  235. point_merge, a library which considers N points in M dimensional space, and counts or indexes the unique or tolerably unique items.
  236. poisson_openmp, a program which computes an approximate solution to the Poisson equation in a rectangle, using the Jacobi iteration to solve the linear system, and OpenMP to carry out the Jacobi iteration in parallel.
  237. poisson_serial, a program which computes an approximate solution to the Poisson equation in a rectangle, and is intended as the starting point for the creation of a parallel version.
  238. poisson_simulation, a library which simulates a Poisson process in which events randomly occur with an average waiting time of Lambda.
  239. polpak, a library which evaluates a variety of mathematical functions, including Chebyshev, Gegenbauer, Hermite, Jacobi, Laguerre, Legendre polynomials, and the Collatz sequence.
  240. polygon_moments, a library which computes arbitrary moments of a polygon.
  241. power_method, a library which carries out the power method for finding a dominant eigenvalue and its eigenvector.
  242. ppma_io, a library which reads or writes an ASCII Portable Pixel Map (PPM) 2D graphics file;
  243. ppmb_io, a library which reads or writes a binary Portable Pixel Map (PPM) 2D graphics file;
  244. prime_mpi, a program which counts the number of primes between 1 and N, using MPI for parallel execution.
  245. prime_openmp, a program which counts the number of primes between 1 and N, using OpenMP for parallel execution.
  246. prime_serial, a program which counts the number of primes between 1 and N, and is intended as a starting point for a parallel version.
  247. pthreads, programs which illustrate the use of the POSIX thread library to carry out parallel program execution.
  248. pwl_approx_1d, a library which approximates a set of data using a piecewise linear function.
  249. pwl_interp_1d, a library which interpolates a set of data using a piecewise linear function.
  250. pwl_interp_2d, a library which evaluates a piecewise linear interpolant to data defined on a regular 2D grid.
  251. pwl_interp_2d_scattered, a library which evaluates a piecewise linear interpolant to data which is available at an irregularly arranged set of points.
  252. qr_solve, a library which computes the least squares solution of a linear system A*x=b.
  253. quad_mpi, a program which applies a quadrature rule to estimate an integral, working in parallel by using MPI;
  254. quad_openmp, a program which applies a quadrature rule to estimate an integral over a 1D interval, using OpenMP for parallel execution;
  255. quad_serial, a program which applies a quadrature rule to estimate an integral, intended as a starting point for parallelization exercises.
  256. quad2d_openmp, a program which applies a product quadrature rule to estimate an integral over a 2D rectangle, using OpenMP for parallel execution;
  257. quad2d_serial, a program which applies a product quadrature rule to estimate an integral over a 2D rectangle, intended as a starting point for parallelization exercises.
  258. quadrule, a library which defines quadrature rules for approximating integrals;
  259. qvoronoi, a program which computes the Voronoi diagram of a pointset in M dimensions; this program is part of the qhull package;
  260. r4lib, a library which contains many utility routines, using single precision real (R4) arithmetic.
  261. r8lib, a library which contains many utility routines, using double precision real (R8) arithmetic.
  262. rand48, a program which demonstrates the use of the rand48 family of random number generators available in the C/C++ standard library.
  263. randlc, a library which generates a sequence of pseudorandom numbers, used by the NAS Benchmark programs.
  264. 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.
  265. random_openmp, a program which illustrates how a parallel program using OpenMP can generate multiple distinct streams of random numbers.
  266. rbf_interp_1d, a library which defines and evaluates radial basis function (RBF) interpolants to 1D data.
  267. rbf_interp_2d, a library which defines and evaluates radial basis function (RBF) interpolants to 2D data.
  268. rbf_interp_nd, a library which defines and evaluates radial basis function (RBF) interpolants to multidimensional data.
  269. rbox, a program which generates random pointsets for testing computational geometry algorithms;
  270. reactor simulation, a program which is a simple Monte Carlo simulation of the shielding effect of a slab of a certain thickness in front of a neutron source. This program was provided as an example with the book "Numerical Methods and Software."
  271. ring_mpi, a program which uses the MPI parallel programming environment, and measures the time necessary to copy a set of data around a ring of processes.
  272. rk4, a library which applies the fourth order Runge-Kutta (RK) algorithm to estimate the solution of an ordinary differential equation (ODE) at the next time step.
  273. rkf45, a library which applies the Runge-Kutta-Fehlberg (RKF) algorithm to solve a system of ordinary differential equations (ODE's);
  274. 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.
  275. satisfy, a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfy problem.
  276. satisfy_mpi, a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfy problem, using MPI to perform the calculation in parallel.
  277. satisfy_openmp, a program which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfy problem, using OpenMP for parallel execution.
  278. schedule_openmp, a program which demonstrates the default, static, and dynamic methods of scheduling loop iterations in OpenMP to avoid work imbalance.
  279. sde, a library which illustrates the properties of stochastic differential equations (SDE's), and common algorithms for their analysis, by Desmond Higham;
  280. search_mpi, a program which searches integers between A and B for a solution J such that F(J)=C, carried out in parallel using MPI.
  281. search_serial, a program which searches the integers from A to B for a value J such that F(J) = C. this version of the program is intended as a starting point for a parallel approach.
  282. sftpack, a library which implements the slow Fourier transform, intended as a teaching tool and comparison with the Fast Fourier Transform (FFT).
  283. sgefa_openmp, a program which compares a standard linear algebra solver against a revised version which can be run in parallel with OpenMP.
  284. 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.
  285. shepard_interp_1d, a library which defines and evaluates Shepard interpolants to 1D data, based on inverse distance weighting.
  286. shepard_interp_2d, a library which defines and evaluates Shepard interpolants to 2D data, based on inverse distance weighting.
  287. shepard_interp_nd, a library which defines and evaluates Shepard interpolants to multidimensional data, based on inverse distance weighting.
  288. showme, a program which displays triangulations and meshes, by Jonathan Shewchuk;
  289. simplex_coordinates, a library which computes the Cartesian coordinates of the vertices of a regular simplex in M dimensions.
  290. sine_transform, a library which demonstrates some simple properties of the discrete sine transform.
  291. smolpack, a library which estimates the integral of a function over an M-dimensional hypercube using a sparse grid, by Knut Petras;
  292. sparse_interp_nd, a library which can be used to define a sparse interpolant to a function f(x) of a multidimensional argument.
  293. sphere_grid, a library which provides a number of ways of generating grids of points, or of points and lines, or of points and lines and faces, over the unit sphere.
  294. sphere_lebedev_rule, a library which computes Lebedev quadrature rules for the unit sphere;
  295. sphere_quad, a library which approximates an integral over the surface of the unit sphere by applying a triangulation to the surface;
  296. spline, a library which interpolates or approximates data by piecewise polynomial functions;
  297. spring_ode, a program which shows how line printer graphics can be used to make a crude illustration of a solution of the ordinary differential equation (ODE) that describes the motion of a weight attached to a spring.
  298. spring_ode2, a program which shows how gnuplot graphics can be used to illustrate a solution of the ordinary differential equation (ODE) that describes the motion of a weight attached to a spring.
  299. star_discrepancy, a program which computes bounds on the star discrepancy of a set of N points in M dimensions, by Eric Thiemard.
  300. stochastic_rk, a library which applies a Runge-Kutta (RK) scheme to a stochastic ordinary differential equation (ODE).
  301. string_simulation, a program which simulates the behavior of a vibrating string.
  302. stroud, a library which defines rules for numerical integration (quadrature) over M dimensional regions, including spheres, toruses and other shapes;
  303. subpak, a library which contains many utility routines;
  304. subset, a library which ranks, unranks, and generates random subsets, combinations, permutations;
  305. subset_sum, a program which seeks solutions of the subset sum problem.
  306. 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;
  307. super_blas, a library which implements some of the BLAS routines, for particular use by super_lu;
  308. super_lu, a library which implements a very fast direct solver for sparse linear systems;
  309. svd_demo, a program which demonstrates the calculation of the singular value decomposition (SVD) and some of its properties;
  310. sweep2, a program which computes Voronoi Diagrams or Delaunay triangulations, by Steve Fortune;
  311. table_io, a library which reads and writes a simple dataset stored as a table file;
  312. task_division, a library which implements a simple procedure for smoothly dividing T tasks among P processors; such a method can be useful in MPI and other parallel environments, particularly when T is not an exact multiple of P, and when the processors can be indexed starting from 0 or from 1.
  313. test_approx, a library which implements test problems for approximation, provided as a set of (x,y) data.
  314. test_eigen, a library which implements test matrices for eigenvalue analysis.
  315. test_int, a library which implements test problems for approximate integration (quadrature) in one dimension.
  316. test_int_2d, a library which implements test problems for approximate integration (quadrature) in two dimensions.
  317. test_int_hermite, a library which defines test integrands for Hermite integrals with interval (-oo,+oo) and weight exp(-x^2).
  318. test_int_laguerre, a library which implements test problems for approximate integration over a semi-infinite interval, often carried out using Gauss-Laguerre quadrature.
  319. test_interp, a library which defines test problems for interpolation, provided as a set of (x,y) data.
  320. test_interp_1d, a library which defines test problems for interpolation of data y(x), which depends on a 1D argument.
  321. test_interp_2d, a library which defines test problems for interpolation of data z(x,y), which depends on a 2D argument.
  322. test_interp_nd, a library which defines test problems for interpolation of data z(x), depending on an M-dimensional argument.
  323. test_ls, a library which implements linear least squares test problems of the form A*x=b.
  324. test_mat, a library which implements test matrices.
  325. test_matrix_exponential, a library which defines a set of test cases for computing the matrix exponential.
  326. test_min, a library which implements test problems for minimization of a scalar function of a scalar variable.
  327. test_opt_con, a library which defines test problems for the minimization of a scalar function of several variables, with the search constrained to lie within a specified hyper-rectangle.
  328. test_optimization, a library which implements test problems for optimization of a scalar function of several variables, as described by Molga and Smutnicki.
  329. 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;
  330. test_zero, a library which implements test problems for the solution of a single nonlinear equation in one variable.
  331. testpack, a program which demonstrates the use of a set of test integrand functions chosen by Alan Genz.
  332. tetrahedron_grid, a library which computes a grid of points inside a 3D tetrahedron.
  333. three_body_simulation, a program which simulates the behavior of three planets, constrained to lie in a plane, and moving under the influence of gravity, by Walter Gander and Jiri Hrebicek.
  334. timer, programs which illustrate how to estimate the CPU time taken by a portion of a program;
  335. timestamp, a library which returns the current YMDHMS date as a timestamp, and performs other chores;
  336. toeplitz_cholesky, a library which computes the Cholesky factorization of a nonnegative definite symmetric Toeplitz matrix.
  337. toms178, a library which seeks the minimizer of a function of several variables, using the Hooke-Jeeves direct search method, by Arthur Kaupe. this is a C version of ACM TOMS algorithm 178.
  338. toms179, a library which calculates the incomplete Beta ratio, by Oliver Ludwig; this is a C version of ACM TOMS algorithm 179.
  339. toms291 a library which approximates the logarithm of the Gamma function; this is a C version of ACM TOMS algorithm 291.
  340. toms322, a library which evaluates the F and Student's T Cumulative Density Function (CDF); this is a C version of ACM TOMS algorithm 322.
  341. toms446, a library which manipulates Chebyshev series for interpolation and approximation; this is a C version of ACM TOMS algorithm 446, by Roger Broucke.
  342. toms462, a library which evaluates the upper right tail of the bivariate normal distribution; that is, the probability that normal variables X and Y with correlation R will satisfy H <= X and K <= Y; this is a C version of ACM TOMS algorithm 462.
  343. toms655, a library which computes the weights for interpolatory quadrature rule; this library is commonly called IQPACK; this is a C version of ACM TOMS algorithm 655.
  344. toms722, a library which supports IEEE arithmetic.
  345. triangle, a program which generates meshes, Delaunay triangulations, and Voronoi diagrams, by Jonathan Shewchuk;
  346. triangle_grid, a library which computes a triangular grid of points.
  347. triangle_io, a library which can read or write some of the files created by Jonathan Shewchuk's triangle program.
  348. triangulate, a program which triangulates a polygonal region, by Joseph ORourke;
  349. triangulation, a library which computes the triangulation of a set of points in the plane, and to perform various operations using a triangulation;
  350. 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;
  351. trig_to_neib, a program which reads node and ele files (a format prescribed by triangle) describing a triangulation, and produces a file defining the neighbor triangles of each element; the program can also produce information about the Voronoi diagram. The program is by Lili Ju.
  352. unicycle, a library which considers permutations containing a single cycle, sometimes called cyclic permutations.
  353. uniform, a library which generates uniform pseudorandom values;
  354. uudecode, a program which recovers the original file from a UU encoded file, by Stephen Satchell and Chuck Forsberg.
  355. uuencode, a program which takes an input file, especially a binary file, and creates a UU encoded copy that is a text file, suitable for transmission through mail or other text-only systems, by Stephen Satchell and Chuck Forsberg.
  356. valgrind, programs which illustrate the use of the valgrind suite of programs which includes a memory leak detector.
  357. vandermonde_approx_1d, a library which finds a polynomial approximant to data y(x) of a 1D argument by setting up and solving an overdetermined linear system for the polynomial coefficients involving the Vandermonde matrix.
  358. vandermonde_approx_2d, a library which finds a polynomial approximant p(x,y) to data z(x,y) of a 2D argument by setting up and solving an overdetermined linear system for the polynomial coefficients involving the Vandermonde matrix.
  359. vandermonde_interp_1d, a library which finds a polynomial interpolant to data y(x) of a 1D argument by setting up and solving a linear system for the polynomial coefficients involving the Vandermonde matrix.
  360. vandermonde_interp_2d, a library which finds a polynomial interpolant to data z(x,y) of a 2D argument by setting up and solving a linear system for the polynomial coefficients involving the Vandermonde matrix.
  361. walsh, a library which implements versions of the Walsh and Haar transforms.
  362. wavelet, a library which does some simple wavelet calculations;
  363. weekday, a library which determines the day of the week corresponding to a given date, such as 14 October 1066, Julian calendar, ... which was a Saturday.
  364. wtime, a library which returns a reading of the wall clock time in seconds.
  365. xboids, a program which simulates the behavior of a flying flock of animals, displaying the results using X Windows, by Conrad Parker.
  366. xising, a program which models the variations in ferromagnetism in a material, displaying the results using X Windows, by Michael Creutz.
  367. xwaves, a program which simulates the behavior of solutions of certain forms of the wave equation, displaying the results using X Windows, by Michael Creutz.
  368. ziggurat, a library which samples the uniform, normal or exponential distributions, using the ziggurat method, by Marsaglia and Tsang.
  369. ziggurat_openmp, a program which demonstrates how the ziggurat library can be used to generate random numbers in an OpenMP parallel program.

About

Resources for Computation using C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 85.0%
  • HTML 13.2%
  • Shell 1.3%
  • C++ 0.2%
  • Roff 0.2%
  • Fortran 0.1%