13. Linear_Algebra Module

That fondness for science, ... has encouraged me to compose a short work on calculating by al-jabr and al-muqabala, confining it to what is easiest and most useful in arithmetic, such as men constantly require in cases of inheritance, legacies, partition, lawsuits, and trade, and in all their dealings with one another, or where the measuring of lands, the digging of canals, geometrical computations, and other objects of various sorts and kinds are concerned. - from the algebra treatise Hisab al-jabr w'al-muqabala, the most famous work of Abu Ja'far Muhammad ibn Musa Al-Khwarizmi (c. 780 - c. 850) [al-jabr means ``restoring'', referring to the process of moving a subtracted quantity to the other side of an equation; al-muqabala is ``comparing'' and refers to subtracting equal quantities from both sides of an equation.]

The Linear_Algebra Module contains classes to support the manipulation and solution of linear algebra problems for the CÆSAR Code Package. Several matrix classes (with different storage formats) and a Mathematic Vector class are included. A Solver class is used to drive the solution of linear equations using both external packages and solvers included within CÆSAR.

The Linear_Algebra Module code listing contains additional documentation.

- 13.1 Mathematic_Vector Class
- 13.1.1 Initialize_Mathematic_Vector Procedure
- 13.1.2 Duplicate_Mathematic_Vector Procedure
- 13.1.3 Finalize_Mathematic_Vector Procedure
- 13.1.4 Valid_State_Mathematic_Vector Procedure
- 13.1.5 Initialized_Mathematic_Vector Procedure
- 13.1.6 Add_Values_Mathematic_Vector Procedure
- 13.1.7 DotProduct_Mathematic_Vector Procedure
- 13.1.8 Get Value Mathematic_Vector Functions
- 13.1.9 Get_Values_Mathematic_Vector Procedure
- 13.1.10 Orthogonal_Mathematic_Vector Procedure
- 13.1.11 Output_Mathematic_Vector Procedure
- 13.1.12 Set_Not_Up_to_Date_Mathematic_Vector Procedure
- 13.1.13 Set_Values_Mathematic_Vector Procedure
- 13.1.14 Update_DV_Mathematic_Vector Procedure

- 13.2 ELL_Matrix Class
- 13.2.1 Initialize_ELL_Matrix Procedure
- 13.2.2 Finalize_ELL_Matrix Procedure
- 13.2.3 Valid_State_ELL_Matrix Procedure
- 13.2.4 Initialized_ELL_Matrix Procedure
- 13.2.5 Add_Values_ELL_Matrix Procedure
- 13.2.6 Get Value ELL_Matrix Functions
- 13.2.7 Get_Columns_ELL_Matrix Procedure
- 13.2.8 Get_Values_ELL_Matrix Procedure
- 13.2.9 MatVec_ELL_Matrix Procedure
- 13.2.10 Output_ELL_Matrix Procedure
- 13.2.11 Read_Harwell_Boeing_ELL_Matrix Procedure
- 13.2.12 Residual_ELL_Matrix Procedure
- 13.2.13 Set_0_Diagonal_to_1_ELL_Matrix Procedure
- 13.2.14 Set_Not_Up_to_Date_ELL_Matrix Procedure
- 13.2.15 Set_Values_ELL_Matrix Procedure

- 13.3 Solver Class