Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Matrices/READ_ME, Revision 1.1
1.1 ! maekawa 1: Integer and floating vectors, matrices and linear-system solvers in PHCv2
! 2:
! 3: New in this release is the availability of multi-precision numbers,
! 4: implemented with appropriate Ada 95 concepts.
! 5: Also QR decomposition and least squares approximation have been added.
! 6:
! 7: This library is organized in four parts :
! 8: 1) generic packages: vectors, vectors of vectors, matrices, and _io.
! 9: 2) instantiations:
! 10: {standard,multprec}_{natural,integer,floating,complex}_
! 11: {vectors,vecvecs,matrices}[_{io}]
! 12: 3) gcd's and factorizations to solve linear systems
! 13: 4) random generators and test programs, with prefix ts_*
! 14: The organization above is hierarchic. Other possible views are classifications
! 15: by numeric types (e.g., everything with standard_integer*,*integer*, etc...) or
! 16: by data types (e.g., everything with *matrices*, *vectors*, etc...).
! 17:
! 18: --------------------------------------------------------------------------------
! 19: file name : short description
! 20: --------------------------------------------------------------------------------
! 21: generic_vectors : vectors with coefficients in any ring
! 22: generic_vectors_io : input/output for generic vectors
! 23: generic_vecvecs : vectors of vectors over any ring
! 24: generic_vecvecs_io : input/output for vectors of vectors
! 25: generic_matrices : matrices with coefficients in any ring
! 26: generic_matrices_io : input/output for generic matrices
! 27: generic_vecmats : vectors of matrices over any ring
! 28: generic_vecmats_io : input/output for vectors of matrices
! 29: --------------------------------------------------------------------------------
! 30: standard_natural_vectors : vectors of standard natural numbers
! 31: standard_natural_vectors_io : generic_vectors_io(standard natural)
! 32: standard_natural_vecvecs : generic_vecvecs(standard natural)
! 33: standard_natural_vecvecs_io : generic_vecvecs_io(standard natural)
! 34: standard_natural_matrices : matrices of standard natural numbers
! 35: standard_natural_matrices_io : generic_matrices_io(standard natural)
! 36: standard_integer_vectors : vectors of standard integer numbers
! 37: standard_integer_vectors_io : generic_vectors_io(standard integer)
! 38: standard_integer_norms : norms for standard integer vectors
! 39: standard_integer_vecvecs : generic_vecvecs(standard integer)
! 40: standard_integer_vecvecs_io : generic_vecvecs_io(standard integer)
! 41: standard_integer_matrices : matrices of standard integer numbers
! 42: standard_integer_matrices_io : generic_matrices_io(standard integer)
! 43: standard_integer_vecmats : generic_vecmats(standard integer)
! 44: standard_integer_vecmats_io : generic_vecmats_io(standard integer)
! 45: standard_floating_vectors : vectors of standard floating numbers
! 46: standard_floating_vectors_io : generic_vectors_io(standard floating)
! 47: standard_floating_vecvecs : generic_vecvecs(standard floating)
! 48: standard_floating_vecvecs_io : generic_vecvecs_io(standard floating)
! 49: standard_floating_matrices : matrices of standard floating numbers
! 50: standard_floating_matrices_io : generic_matrices_io(standard floating)
! 51: standard_floating_vecmats : generic_vecmats(standard floating)
! 52: standard_floating_vecmats_io : generic_vecmats_io(standard floating)
! 53: standard_complex_vectors : vectors of standard complex numbers
! 54: standard_complex_vectors_io : generic_vectors_io(standard complex)
! 55: standard_complex_vecvecs : generic_vecvecs(standard complex)
! 56: standard_complex_vecvecs_io : generic_vecvecs_io(standard complex)
! 57: standard_complex_matrices : matrices of standard complex numbers
! 58: standard_complex_matrices_io : generic_matrices_io(standard complex)
! 59: standard_complex_vecmats : generic_vecmats(standard complex)
! 60: standard_complex_vecmats_io : generic_vecmats_io(standard complex)
! 61: multprec_natural_vectors : vectors of multi-precision natural numbers
! 62: multprec_natural_vectors_io : generic_vectors_io(multprec natural)
! 63: multprec_natural_vecvecs : generic_vecvecs(multprec natural)
! 64: multprec_natural_vecvecs_io : generic_vecvecs_io(multprec natural)
! 65: multprec_natural_matrices : matrices of multi-precision natural numbers
! 66: multprec_natural_matrices_io : generic_matrices_io(multprec natural)
! 67: multprec_integer_vectors : vectors of multi-precision integer numbers
! 68: multprec_integer_vectors_io : generic_vectors_io(multprec integer)
! 69: multprec_integer_vecvecs : generic_vecvecs(multprec integer)
! 70: multprec_integer_vecvecs_io : generic_vecvecs_io(multprec integer)
! 71: multprec_integer_matrices : matrices of multi-precision integer numbers
! 72: multprec_integer_matrices_io : generic_matrices_io(multprec integer)
! 73: multprec_floating_vectors : vectors of multi-precision floating numbers
! 74: multprec_floating_vectors_io : generic_vectors_io(multprec floating)
! 75: multprec_floating_vecvecs : generic_vecvecs(multprec floating)
! 76: multprec_floating_vecvecs_io : generic_vecvecs_io(multprec floating)
! 77: multprec_floating_matrices : matrices of multi-precision floating
! 78: multprec_floating_matrices_io : generic_matrices_io(multprec floating)
! 79: multprec_complex_vectors : vectors of multi-precision complex numbers
! 80: multprec_complex_vectors_io : generic_vectors_io(multprec complex)
! 81: multprec_complex_vecvecs : generic_vecvecs(multprec complex)
! 82: multprec_complex_vecvecs_io : generic_vecvecs_io(multprec complex)
! 83: --------------------------------------------------------------------------------
! 84: greatest_common_divisors : greatest common divisors over any domain
! 85: standard_common_divisors : gcd/lcm for the standard integer numbers
! 86: multprec_common_divisors : gcd/lcm for the multi-precision integers
! 87: generic_integer_linear_solvers : solvers of linear systems over any domain
! 88: standard_integer_linear_solvers : linear-system solvers for standard integers
! 89: standard_integer_linear_equalities : manipulation of linear equalities
! 90: multprec_integer_linear_solvers : linear-system solvers for multprec integers
! 91: generic_floating_linear_solvers : solvers of linear systems of floats
! 92: standard_floating_linear_solvers : linear-system solvers for standard floats
! 93: multprec_floating_linear_solvers : linear-system solvers for multprec floats
! 94: standard_complex_linear_solvers : linear-system solvers for standard complex
! 95: multprec_complex_linear_solvers : linear-system solvers for multprec complex
! 96: generic_norms_equals : norms and equality routines
! 97: standard_floating_norms_equals : norms/equals for standard floating numbers
! 98: standard_floating_two_norms : Euclidean norms for standard floating vecs
! 99: multprec_floating_norms_equals : norms/equals for multprec floating numbers
! 100: standard_complex_norms_equals : norms/equals for standard complex numbers
! 101: multprec_complex_norms_equals : norms/equals for multprec complex numbers
! 102: standard_floating_qr_decomposition : QR-decomposition for standard floats
! 103: standard_complex_qr_decomposition : QR-decomposition of standard complex #s
! 104: standard_floating_least_squares : least squares for standard floats
! 105: standard_complex_least_squares : least squares for standard complex #s
! 106: --------------------------------------------------------------------------------
! 107: standard_random_vectors : vectors of random standard numbers
! 108: standard_random_vecvecs : vecvecs of random standard numbers
! 109: standard_random_matrices : matrices of random standard numbers
! 110: multprec_random_vectors : vectors of random multi-precision numbers
! 111: multprec_random_vecvecs : vecvecs of random multi-precision numbers
! 112: multprec_random_matrices : matrices of random multi-precision numbers
! 113: --------------------------------------------------------------------------------
! 114: ts_natvec : test vectors/vecvecs of natural numbers
! 115: ts_natmat : test matrices of natural numbers
! 116: ts_intvec : test vectors/vecvecs of integer numbers
! 117: ts_intmat : test solvers of integer numbers
! 118: ts_gcd : test greatest common divisors
! 119: ts_fltvec : test vectors/vecvecs of floating numbers
! 120: ts_fltmat : test solvers of floating linear systems
! 121: ts_fltdls : test dynamic matrix triangulators
! 122: ts_cmpvec : test vectors/vecvecs of complex numbers
! 123: ts_cmpmat : test solvers of complex linear systems
! 124: ts_qrd : test QR-decomposition and least squares
! 125: --------------------------------------------------------------------------------
! 126: The generic_* packages are different from the abstract_* packages in the
! 127: sense that they export types and operations, i.e.: they have a body.
! 128:
! 129: The LU-factorizations for real and complex numbers have been translated from
! 130: the LINPACK f77 library. Adaptions have been made for multi-precision.
! 131: The LINPACK f77 library was also the source for QR and least squares.
! 132:
! 133: There are three types of linear systems: over integer, floating-point reals
! 134: and complex numbers. For each numeric type, there is only one generic
! 135: implementation, except for the complex numbers, where it became too complex
! 136: to elaborate the mixed floating-complex arithmetic with generics.
! 137: Also with norms and equalities, no generics are used for complex numbers.
! 138:
! 139: This library contains 134 files:
! 140: 1 READ_ME file
! 141: 92 specifications (ads), including 7 generic packages
! 142: 41 implementations (adb), including 11 test programs
! 143: wc *adb counts 7742 lines of Ada code.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>