Permalink
Browse files

New repository for release on Github.

  • Loading branch information...
Thomas M. Hermann
Thomas M. Hermann committed Mar 28, 2011
0 parents commit 0c4c7c91bcf17b69eb818339ecbecd78522711bb
Showing with 39,738 additions and 0 deletions.
  1. +145 −0 Makefile
  2. +6 −0 README
  3. +49 −0 documentation/Makefile
  4. +175 −0 documentation/bibliography.bib
  5. +12 −0 documentation/linear-algebra-test.tcp
  6. +8,505 −0 documentation/linear-algebra-test.tex
  7. +38 −0 documentation/linear-algebra-test.tps
  8. +12 −0 documentation/linear-algebra.tcp
  9. +5,653 −0 documentation/linear-algebra.tex
  10. +38 −0 documentation/linear-algebra.tps
  11. +960 −0 documentation/noweb.sty
  12. +114 −0 lisp/auxiliary.lisp
  13. +511 −0 lisp/data-vector.lisp
  14. +99 −0 lisp/defpackage.lisp
  15. +482 −0 lisp/dense-matrix.lisp
  16. +97 −0 lisp/fundamental-ops.lisp
  17. +300 −0 lisp/hermitian-matrix.lisp
  18. +150 −0 lisp/identity-matrix.lisp
  19. +60 −0 lisp/linear-algebra.asd
  20. +132 −0 lisp/matrix.lisp
  21. +232 −0 lisp/permutation-matrix.lisp
  22. +75 −0 lisp/square-matrix.lisp
  23. +279 −0 lisp/symmetric-matrix.lisp
  24. +552 −0 lisp/triangular-matrix.lisp
  25. +183 −0 lisp/vector.lisp
  26. +8,504 −0 noweb/linear-algebra-test.noweb
  27. +5,652 −0 noweb/linear-algebra.noweb
  28. BIN reference/CL-scientific.pdf
  29. BIN reference/Lisp-Benchmarking-and-Fannkuch.pdf
  30. BIN reference/Lisp-performance.pdf
  31. BIN reference/NASA-TM-103907.pdf
  32. BIN reference/SparseDirectSurvey.pdf
  33. BIN reference/blas-mixed-precision.pdf
  34. BIN reference/blas-sparse-overview.pdf
  35. BIN reference/blas-update.pdf
  36. BIN reference/blas1-paper.pdf
  37. BIN reference/blas2-paper.pdf
  38. BIN reference/blas3-paper.pdf
  39. BIN reference/blasqr.pdf
  40. BIN reference/blast-report.pdf
  41. BIN reference/courage-in-profiles.pdf
  42. BIN reference/floating-point-math.pdf
  43. BIN reference/in-poly.pdf
  44. BIN reference/jucs-14-20-3389-3411-verna.pdf
  45. BIN reference/lawn148.pdf
  46. BIN reference/lawn149.pdf
  47. BIN reference/lawn203.pdf
  48. BIN reference/lispfloat.pdf
  49. BIN reference/p339-householder.pdf
  50. BIN reference/p957.pdf
  51. BIN reference/pseudoknot-benchmark.pdf
  52. BIN reference/spe053ku.pdf
  53. BIN reference/verna.06.ecoop.pdf
  54. BIN reference/verna.09.ilc.pdf
  55. +144 −0 test/auxiliary.lisp
  56. +1,306 −0 test/data-vector.lisp
  57. +263 −0 test/defpackage.lisp
  58. +895 −0 test/dense-matrix.lisp
  59. +717 −0 test/hermitian-matrix.lisp
  60. +286 −0 test/identity-matrix.lisp
  61. +56 −0 test/linear-algebra-test.asd
  62. +178 −0 test/matrix.lisp
  63. +336 −0 test/permutation-matrix.lisp
  64. +594 −0 test/square-matrix.lisp
  65. +621 −0 test/symmetric-matrix.lisp
  66. +1,205 −0 test/triangular-matrix.lisp
  67. +122 −0 test/vector.lisp
145 Makefile
@@ -0,0 +1,145 @@
+# Commands
+TANGLE = /usr/local/bin/notangle
+WEAVE = /usr/local/bin/noweave -delay
+CPIF = /usr/local/bin/cpif
+
+# Noweb source documents
+LINEAR-ALGEBRA-SRC = noweb/linear-algebra.noweb
+LINEAR-ALGEBRA-TEST-SRC = noweb/linear-algebra-test.noweb
+
+# Common Lisp files
+LINEAR-ALGEBRA += lisp/linear-algebra.asd
+LINEAR-ALGEBRA += lisp/defpackage.lisp
+LINEAR-ALGEBRA += lisp/auxiliary.lisp
+LINEAR-ALGEBRA += lisp/fundamental-ops.lisp
+LINEAR-ALGEBRA += lisp/vector.lisp
+LINEAR-ALGEBRA += lisp/data-vector.lisp
+LINEAR-ALGEBRA += lisp/matrix.lisp
+LINEAR-ALGEBRA += lisp/identity-matrix.lisp
+LINEAR-ALGEBRA += lisp/permutation-matrix.lisp
+LINEAR-ALGEBRA += lisp/dense-matrix.lisp
+LINEAR-ALGEBRA += lisp/square-matrix.lisp
+LINEAR-ALGEBRA += lisp/hermitian-matrix.lisp
+LINEAR-ALGEBRA += lisp/symmetric-matrix.lisp
+LINEAR-ALGEBRA += lisp/triangular-matrix.lisp
+
+# Unit test files
+LINEAR-ALGEBRA-TEST += test/linear-algebra-test.asd
+LINEAR-ALGEBRA-TEST += test/defpackage.lisp
+LINEAR-ALGEBRA-TEST += test/vector.lisp
+LINEAR-ALGEBRA-TEST += test/data-vector.lisp
+LINEAR-ALGEBRA-TEST += test/matrix.lisp
+LINEAR-ALGEBRA-TEST += test/identity-matrix.lisp
+LINEAR-ALGEBRA-TEST += test/permutation-matrix.lisp
+LINEAR-ALGEBRA-TEST += test/dense-matrix.lisp
+LINEAR-ALGEBRA-TEST += test/square-matrix.lisp
+LINEAR-ALGEBRA-TEST += test/hermitian-matrix.lisp
+LINEAR-ALGEBRA-TEST += test/symmetric-matrix.lisp
+LINEAR-ALGEBRA-TEST += test/triangular-matrix.lisp
+LINEAR-ALGEBRA-TEST += test/auxiliary.lisp
+
+# Documentation files
+DOCUMENTATION-FILES += documentation/linear-algebra.tex
+DOCUMENTATION-FILES += documentation/linear-algebra-test.tex
+
+# Rules
+default: linear-algebra
+
+all: linear-algebra linear-algebra-test documentation
+
+documentation: $(DOCUMENTATION-FILES)
+
+linear-algebra: $(LINEAR-ALGEBRA)
+
+linear-algebra-test: $(LINEAR-ALGEBRA-TEST)
+
+# Documentation rules
+
+# Linear algebra rules
+documentation/linear-algebra.tex: $(LINEAR-ALGEBRA-SRC)
+ $(WEAVE) $(LINEAR-ALGEBRA-SRC) | $(CPIF) $@
+
+lisp/linear-algebra.asd: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rlinear-algebra.asd $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/defpackage.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rdefpackage.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/auxiliary.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rauxiliary.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/fundamental-ops.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rfundamental-ops.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/vector.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rvector.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/data-vector.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rdata-vector.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rmatrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/identity-matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Ridentity-matrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/permutation-matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rpermutation-matrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/dense-matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rdense-matrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/square-matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rsquare-matrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/hermitian-matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rhermitian-matrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/symmetric-matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rsymmetric-matrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+lisp/triangular-matrix.lisp: $(LINEAR-ALGEBRA-SRC)
+ $(TANGLE) -Rtriangular-matrix.lisp $(LINEAR-ALGEBRA-SRC) > $@
+
+# Unit test rules
+documentation/linear-algebra-test.tex: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(WEAVE) $(LINEAR-ALGEBRA-TEST-SRC) | $(CPIF) $@
+
+test/linear-algebra-test.asd: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rlinear-algebra-test.asd $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/defpackage.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rdefpackage.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/vector.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rvector.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/data-vector.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rdata-vector.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rmatrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/identity-matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Ridentity-matrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/permutation-matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rpermutation-matrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/dense-matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rdense-matrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/square-matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rsquare-matrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/hermitian-matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rhermitian-matrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/symmetric-matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rsymmetric-matrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/triangular-matrix.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rtriangular-matrix.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
+
+test/auxiliary.lisp: $(LINEAR-ALGEBRA-TEST-SRC)
+ $(TANGLE) -Rauxiliary.lisp $(LINEAR-ALGEBRA-TEST-SRC) > $@
6 README
@@ -0,0 +1,6 @@
+linear-algebra
+
+linear-algebra is a Common Lisp library of numeric linear algebra routines.
+It approximates the functionality present in the Basic Linear Algebra
+Subroutines (BLAS) Fortran library. The objective of this project is to
+generate linear algebra routines in native ANSI Common Lisp.
@@ -0,0 +1,49 @@
+#
+ BIBTEX = /usr/bin/bibtex
+MAKEINDEX = /usr/bin/makeindex
+ PDFLATEX = /usr/bin/pdflatex -shell-escape
+ ASPELL = /usr/bin/aspell --mode=tex check
+
+default: linear-algebra.pdf
+
+all: linear-algebra.pdf linear-algebra-test.pdf
+
+# linear-algebra
+linear-algebra.pdf: linear-algebra.tex bibliography.bib
+ $(PDFLATEX) linear-algebra && \
+ $(BIBTEX) linear-algebra && \
+ $(MAKEINDEX) -s nomencl.ist -o linear-algebra.gls linear-algebra.glo && \
+ $(PDFLATEX) linear-algebra && \
+ $(PDFLATEX) linear-algebra && \
+ $(PDFLATEX) linear-algebra
+
+# linear-algebra-test
+linear-algebra-test.pdf: linear-algebra-test.tex bibliography.bib
+ $(PDFLATEX) linear-algebra-test && \
+ $(BIBTEX) linear-algebra-test && \
+ $(MAKEINDEX) -s nomencl.ist -o linear-algebra-test.gls linear-algebra-test.glo && \
+ $(PDFLATEX) linear-algebra-test && \
+ $(PDFLATEX) linear-algebra-test && \
+ $(PDFLATEX) linear-algebra-test
+
+#
+.PHONY: clean clobber spell-check spell-check-linear-algebra-test
+
+spell-check:
+ $(ASPELL) linear-algebra.tex
+
+spell-check-linear-algebra-test:
+ $(ASPELL) linear-algebra-test.tex
+
+clean:
+ -rm *.aux
+ -rm *.glo
+ -rm *.gls
+ -rm *.ilg
+ -rm *.log
+ -rm *.bbl
+ -rm *.blg
+
+clobber:
+ -rm linear-algebra.pdf
+ -rm linear-algebra-test.pdf
@@ -0,0 +1,175 @@
+
+@Article{blast-update,
+ author = {L. S. Blackford and J. Demmel and J. Dongarra and
+ I. Duff and S. Hammarling and G. Henry and M. Heroux
+ and L. Kaufman and A. Lumsdaine and A. Petitet and
+ R. Pozo and K. Remington and R. C. Whaley},
+ title = {An updated set of basic linear algebra subprograms
+ (BLAS)},
+ journal = {ACM Trans. Math. Softw.},
+ volume = 28,
+ number = 2,
+ year = 2002,
+ issn = {0098-3500},
+ pages = {135--151},
+ doi = {http://doi.acm.org/10.1145/567806.567807},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@Article{blast-report,
+ author = {S. Blackford and G. Corliss and J. Demmel and
+ J. Dongarra and I. Duff and G. Hammarling and
+ G. Henry and M. Heroux and C. Hu and W. Kahan and
+ L. Kaufmann and B. Kearfott and F. Krogh and X. Li
+ and X. Maany and A. Petitet and R. Pozo and
+ K. Remington and W. Walster and C. Whaley and
+ V. Wolff and J. Gudenberg and A. Lumsdaine},
+ title = {Basic Linear Algebra Subprograms Technical (BLAST)
+ Forum Standard},
+ journal = {International Journal of High Performance
+ Applications and Supercomputing},
+ year = 2002,
+ volume = 16,
+ number = 1
+}
+
+@Book{linear-algebra,
+ author = {James W. Demmel},
+ title = {Applied Numerical Linear Algebra},
+ publisher = {Society for Industrial and Applied Mathematics},
+ year = 1997
+}
+
+@Book{NumAlgoC,
+ author = {Gisela Engeln-M\"{u}llges and Frank Uhlig},
+ title = {Numerical Algorithms with C},
+ publisher = {Springer},
+ year = 1996
+}
+
+@Book{lapack,
+ author = {E. Anderson and Z. Bai and C. Bischof and
+ S. Blackford and J. Demmel and J. Dongarra and J. Du
+ Croz and A. Greenbaum and S. Hammarling and
+ A. McKenney and D. Sorensen},
+ title = {LAPACK Users' Guide},
+ publisher = {Society for Industrial and Applied Mathematics},
+ year = 1999,
+ series = {Software, environments, tools},
+ edition = {3rd}
+}
+
+@Article{blas:1,
+ author = {C. L. Lawson and R. J. Hanson and D. R. Kincaid and
+ F. T. Krogh},
+ title = {Basic Linear Algebra Subprograms for Fortran Usage},
+ journal = {ACM Trans. Math. Softw.},
+ volume = 5,
+ number = 3,
+ year = 1979,
+ issn = {0098-3500},
+ pages = {308--323},
+ doi = {http://doi.acm.org/10.1145/355841.355847},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@Article{blas:2,
+ author = {Jack J. Dongarra and Jeremy Du Croz and Sven
+ Hammarling and Richard J. Hanson},
+ title = {An extended set of FORTRAN basic linear algebra
+ subprograms},
+ journal = {ACM Trans. Math. Softw.},
+ volume = 14,
+ number = 1,
+ year = 1988,
+ issn = {0098-3500},
+ pages = {1--17},
+ doi = {http://doi.acm.org/10.1145/42288.42291},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@Article{blas:3,
+ author = {J. J. Dongarra and Jeremy Du Croz and Sven
+ Hammarling and I. S. Duff},
+ title = {A set of level 3 basic linear algebra subprograms},
+ journal = {ACM Trans. Math. Softw.},
+ volume = 16,
+ number = 1,
+ year = 1990,
+ issn = {0098-3500},
+ pages = {1--17},
+ doi = {http://doi.acm.org/10.1145/77626.79170},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@InProceedings{cl-critique,
+ author = {Rodney A. Brooks and Richard P. Gabriel},
+ title = {A critique of common LISP},
+ booktitle = {LFP '84: Proceedings of the 1984 ACM Symposium on
+ LISP and functional programming},
+ year = 1984,
+ isbn = {0-89791-142-3},
+ pages = {1--8},
+ location = {Austin, Texas, United States},
+ doi = {http://doi.acm.org/10.1145/800055.802016},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@Article{cl-float,
+ author = {Richard J. Fateman and Kevin A. Broughan and Diane
+ K. Willcock and Duane Rettig},
+ title = {Fast floating-point processing in Common Lisp},
+ journal = {ACM Trans. Math. Softw.},
+ volume = 21,
+ number = 1,
+ year = 1995,
+ issn = {0098-3500},
+ pages = {26--62},
+ doi = {http://doi.acm.org/10.1145/200979.200989},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@InProceedings{lisp-evolution,
+ author = {Guy L. Steele and Richard P. Gabriel},
+ title = {The evolution of Lisp},
+ booktitle = {History of programming languages---II},
+ year = 1996,
+ isbn = {0-201-89502-1},
+ pages = {233--330},
+ doi = {http://doi.acm.org/10.1145/234286.1057818},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+}
+
+@Book{CLTL1,
+ author = {Guy Steele},
+ title = {Common Lisp: The Language},
+ year = 1984,
+ isbn = {093237641-X},
+ publisher = {Digital Press},
+ address = {Newton, MA, USA},
+}
+
+@TechReport{CMUCL,
+ author = {Robert A. MacLachlan},
+ title = {CMU Common Lisp User''s Manual},
+ year = 1992,
+ institution = {Carnegie Mellon University},
+ address = {Pittsburgh, PA, USA},
+}
+
+@TechReport{lawn148,
+ author = {D. Bindel and J. Demmel and W. Kahan and O. Marques},
+ title = {On computing Givens rotations reliably and efficiently},
+ institution = {University of Tennessee},
+ year = 2001,
+ type = {LAPACK Working Note 148},
+ number = {UT-CS-00-449},
+ month = {January 31}
+}
@@ -0,0 +1,12 @@
+[FormatInfo]
+Type=TeXnicCenterProjectInformation
+Version=4
+
+[ProjectInfo]
+MainFile=linear-algebra-test.tex
+UseBibTeX=1
+UseMakeIndex=1
+ActiveProfile=LaTeX => PDF
+ProjectLanguage=en
+ProjectDialect=US
+
Oops, something went wrong.

0 comments on commit 0c4c7c9

Please sign in to comment.