Skip to content

Commit

Permalink
Features:
Browse files Browse the repository at this point in the history
	- Frobenius Norm of the Eigenvalues (1, 2, 3)
	- R1 Square SVD Based Frobenius Norm (4, 5, 6)
	- Frobenius Evaluator SVD Based Norm (7, 8, 9)
	- Infinity, Infinity Max Matrix Norm Shell (10, 11, 12)
	- Infinity, Infinity Max Matrix Norm Constructor (13, 14, 15)
	- Infinity, Infinity Max Matrix Norm Evaluate (16, 17, 18)
	- Eigen-value and Eigen-component Extraction Schemes (19, 20, 21)
	- Jordan Normal, UV, and QR Decompositions #1 (22, 23, 24)
	- Jordan Normal, UV, and QR Decompositions #2 (25, 26, 27)
	- Jordan Normal, UV, and QR Decompositions #3 (28, 29, 30)
	- Jordan Normal, UV, and QR Decompositions #4 (31, 32, 33)
	- Numerical Eigenization QR Decomposition Matrices (34, 35, 36)
	- SVD Decomposition Numerical UV Shell (37, 38, 39)
	- SVD Decomposition Decomposed U (40, 41)
	- SVD Decomposition Decomposed V (42, 43)
	- SVD Decomposition Numerical UV Constructor (44, 45, 46)
	- Singular Value Decomposer Decomposition Shell (47, 48)
	- Singular Value Decomposer Decomposition Decompose (49, 50, 51)
	- Gamma2 Evaluator Matrix Norm Shell (52, 53, 54)
	- Gamma2 Evaluator Matrix Norm Constructor (55, 56, 57)
	- Gamma2 Evaluator Matrix Norm Decomposer (58, 59)
	- Gamma2 Evaluator 2 Infinity Norm (60, 61)
	- Gamma2 Evaluator Matrix Norm Evaluator (62, 63, 64)
	- Portfolio Construction Request/Response Constructs (65, 66)
	- Portfolio Construction Component Framework Manager (67, 68, 69)
	- Portfolio Construction Manager Universe Container (70, 71, 72)
	- Portfolio Universe Container Holdings Map (73, 74, 75)
	- Portfolio Universe Container Holdings Addition (79, 80, 81)
	- Portfolio Universe Container Holdings Containment (82, 83, 84)
	- Portfolio Universe Container Holdings Retrieval (85, 86, 87)
	- Portfolio Universe Container Holdings Constructor (88, 89, 90)
	- Portfolio Construction Block Category #1 (91, 92, 93)
	- Portfolio Construction Block Category #2 (94, 95, 96)
	- Optimizer Formulation Term Objective Category (97, 98, 99)
	- Portfolio Construction Block Category #3 (100, 101, 102)
	- Portfolio Construction Block Category #4 (103, 104, 105)
	- Portfolio Construction Block Category ACCOUNT (106, 107, 108)
	- Portfolio Construction Block Category ASSET (109, 110, 111)
	- Portfolio Construction Block Category ATTRIBUTE JOINT DENSE (112, 113, 114)
	- Portfolio Construction Block Category ATTRIBUTE JOINT FACTOR (115, 116, 117)


Bug Fixes/Re-organization:

Samples:

IdeaDRIP:
  • Loading branch information
Lakshmik committed Sep 7, 2024
1 parent e9dd99d commit f07b0b6
Show file tree
Hide file tree
Showing 53 changed files with 1,318 additions and 144 deletions.
50 changes: 50 additions & 0 deletions ReleaseNotes/04_10_2024.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@

Features:

- Frobenius Norm of the Eigenvalues (1, 2, 3)
- R1 Square SVD Based Frobenius Norm (4, 5, 6)
- Frobenius Evaluator SVD Based Norm (7, 8, 9)
- Infinity, Infinity Max Matrix Norm Shell (10, 11, 12)
- Infinity, Infinity Max Matrix Norm Constructor (13, 14, 15)
- Infinity, Infinity Max Matrix Norm Evaluate (16, 17, 18)
- Eigen-value and Eigen-component Extraction Schemes (19, 20, 21)
- Jordan Normal, UV, and QR Decompositions #1 (22, 23, 24)
- Jordan Normal, UV, and QR Decompositions #2 (25, 26, 27)
- Jordan Normal, UV, and QR Decompositions #3 (28, 29, 30)
- Jordan Normal, UV, and QR Decompositions #4 (31, 32, 33)
- Numerical Eigenization QR Decomposition Matrices (34, 35, 36)
- SVD Decomposition Numerical UV Shell (37, 38, 39)
- SVD Decomposition Decomposed U (40, 41)
- SVD Decomposition Decomposed V (42, 43)
- SVD Decomposition Numerical UV Constructor (44, 45, 46)
- Singular Value Decomposer Decomposition Shell (47, 48)
- Singular Value Decomposer Decomposition Decompose (49, 50, 51)
- Gamma2 Evaluator Matrix Norm Shell (52, 53, 54)
- Gamma2 Evaluator Matrix Norm Constructor (55, 56, 57)
- Gamma2 Evaluator Matrix Norm Decomposer (58, 59)
- Gamma2 Evaluator 2 Infinity Norm (60, 61)
- Gamma2 Evaluator Matrix Norm Evaluator (62, 63, 64)
- Portfolio Construction Request/Response Constructs (65, 66)
- Portfolio Construction Component Framework Manager (67, 68, 69)
- Portfolio Construction Manager Universe Container (70, 71, 72)
- Portfolio Universe Container Holdings Map (73, 74, 75)
- Portfolio Universe Container Holdings Addition (79, 80, 81)
- Portfolio Universe Container Holdings Containment (82, 83, 84)
- Portfolio Universe Container Holdings Retrieval (85, 86, 87)
- Portfolio Universe Container Holdings Constructor (88, 89, 90)
- Portfolio Construction Block Category #1 (91, 92, 93)
- Portfolio Construction Block Category #2 (94, 95, 96)
- Optimizer Formulation Term Objective Category (97, 98, 99)
- Portfolio Construction Block Category #3 (100, 101, 102)
- Portfolio Construction Block Category #4 (103, 104, 105)
- Portfolio Construction Block Category ACCOUNT (106, 107, 108)
- Portfolio Construction Block Category ASSET (109, 110, 111)
- Portfolio Construction Block Category ATTRIBUTE JOINT DENSE (112, 113, 114)
- Portfolio Construction Block Category ATTRIBUTE JOINT FACTOR (115, 116, 117)


Bug Fixes/Re-organization:

Samples:

IdeaDRIP:
8 changes: 4 additions & 4 deletions src/main/java/org/drip/function/matrix/Square.java
Original file line number Diff line number Diff line change
Expand Up @@ -193,11 +193,11 @@ public int dimension()
* @return The Eigen-Components of the Square Matrix
*/

public org.drip.numerical.eigen.EigenOutput eigenize()
public org.drip.numerical.eigenization.EigenOutput eigenize()
{
try
{
return new org.drip.numerical.eigen.QREigenComponentExtractor (
return new org.drip.numerical.eigenization.QREigenComponentExtractor (
100
).eigenize (
_grid
Expand All @@ -222,7 +222,7 @@ public org.drip.function.matrix.FrobeniusCovariance frobeniusCovariance()
org.drip.function.matrix.FrobeniusCovariance frobeniusCovariance =
new org.drip.function.matrix.FrobeniusCovariance();

org.drip.numerical.eigen.EigenOutput eigenOutput = eigenize();
org.drip.numerical.eigenization.EigenOutput eigenOutput = eigenize();

if (null == eigenOutput)
{
Expand Down Expand Up @@ -395,7 +395,7 @@ public double[][] evaluate (

public double determinant()
{
org.drip.numerical.eigen.EigenOutput eigenOutput = eigenize();
org.drip.numerical.eigenization.EigenOutput eigenOutput = eigenize();

if (null == eigenOutput)
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

package org.drip.measure.crng;

import org.drip.numerical.eigen.EigenOutput;
import org.drip.numerical.eigenization.EigenOutput;
import org.drip.numerical.matrix.R1SquareEigenized;
import org.drip.numerical.matrix.R1Triangular;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

package org.drip.numerical.jordannormalform;
package org.drip.numerical.decomposition;

/*
* -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
Expand Down Expand Up @@ -74,7 +74,8 @@
*/

/**
* <i>J</i> implements the J in the Jordan Normal Form Matrix VJV<sup>-1</sup>. The References are:
* <i>JordanNormalJ</i> implements the J in the Jordan Normal Form Matrix VJV<sup>-1</sup>. The References
* are:
*
* <br><br>
* <ul>
Expand Down Expand Up @@ -103,32 +104,40 @@
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/GraphAlgorithmLibrary.md">Graph Algorithm Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/README.md">Numerical Quadrature, Differentiation, Eigenization, Linear Algebra, and Utilities</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/jordanform/README.md">Implementation of Jordan Normal Form</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/decomposition/README.md">Jordan Normal, UV, and QR Decompositions</a></li>
* </ul>
* <br><br>
*
* @author Lakshmi Krishnamurthy
*/

public class J
public class JordanNormalJ
{
private double[][] _r1Grid = null;
private JSubM[] _jSubMArray = null;
private int _size = Integer.MIN_VALUE;
private JordanNormalJSubM[] _jSubMArray = null;

public J (
final JSubM[] jSubMArray)
/**
* <i>JordanNormalJ</i> Constructor
*
* @param jSubMArray <i>JSubM</i> Array
*
* @throws Exception Thrown if the Inputs are Invalid
*/

public JordanNormalJ (
final JordanNormalJSubM[] jSubMArray)
throws Exception
{
if (null == (_jSubMArray = jSubMArray) || 0 == _jSubMArray.length) {
throw new Exception ("J Constructor => Invalid Inputs");
throw new Exception ("JordanNormalJ Constructor => Invalid Inputs");
}

_size = 0;

for (int i = 0; i < _jSubMArray.length; ++i) {
if (null == _jSubMArray[i]) {
throw new Exception ("J Constructor => Invalid Inputs");
throw new Exception ("JordanNormalJ Constructor => Invalid Inputs");
}

_size += _jSubMArray[i].mSubI();
Expand Down Expand Up @@ -164,7 +173,7 @@ public J (
* @return The <i>JSubM</i> Array
*/

public JSubM[] jSubMArray()
public JordanNormalJSubM[] jSubMArray()
{
return _jSubMArray;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

package org.drip.numerical.jordannormalform;
package org.drip.numerical.decomposition;

import org.drip.numerical.common.NumberUtil;

Expand Down Expand Up @@ -76,7 +76,8 @@
*/

/**
* <i>JSubM</i> implements the J<sub>m<sub>i</sub></sub> Jordan Normal Form Matrix. The References are:
* <i>JordanNormalJSubM</i> implements the J<sub>m<sub>i</sub></sub> Jordan Normal Form Matrix. The
* References are:
*
* <br><br>
* <ul>
Expand Down Expand Up @@ -105,35 +106,35 @@
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/GraphAlgorithmLibrary.md">Graph Algorithm Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/README.md">Numerical Quadrature, Differentiation, Eigenization, Linear Algebra, and Utilities</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/jordanform/README.md">Implementation of Jordan Normal Form</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/decomposition/README.md">Jordan Normal, UV, and QR Decompositions</a></li>
* </ul>
* <br><br>
*
* @author Lakshmi Krishnamurthy
*/

public class JSubM
public class JordanNormalJSubM
{
private double[][] _r1Grid = null;
private double _lambda = Double.NaN;
private int _mSubI = Integer.MIN_VALUE;

/**
* <i>JSubM</i> Constructor
* <i>JordanNormalJSubM</i> Constructor
*
* @param lambda Lambda
* @param mSubI Size - m<sub>i</sub>
*
* @throws Exception Thrown if the Inputs are Invalid
*/

public JSubM (
public JordanNormalJSubM (
final double lambda,
final int mSubI)
throws Exception
{
if (!NumberUtil.IsValid (_lambda = lambda) || 0 >= (_mSubI = mSubI)) {
throw new Exception ("JSubM Constructor => Invalid Inputs");
throw new Exception ("JordanNormalJSubM Constructor => Invalid Inputs");
}

_r1Grid = new double[_mSubI][_mSubI];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

package org.drip.numerical.jordannormalform;
package org.drip.numerical.decomposition;

import org.drip.numerical.linearalgebra.R1MatrixUtil;

Expand Down Expand Up @@ -76,7 +76,7 @@
*/

/**
* <i>VJDecomposition</i> holds the V and the J components of the Jordan Normal Form Matrix. The References
* <i>JordanNormalVJ</i> holds the V and the J components of the Jordan Normal Form Matrix. The References
* are:
*
* <br><br>
Expand Down Expand Up @@ -106,52 +106,52 @@
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/GraphAlgorithmLibrary.md">Graph Algorithm Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/README.md">Numerical Quadrature, Differentiation, Eigenization, Linear Algebra, and Utilities</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/jordanform/README.md">Implementation of Jordan Normal Form</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/decomposition/README.md">Jordan Normal, UV, and QR Decompositions</a></li>
* </ul>
* <br><br>
*
* @author Lakshmi Krishnamurthy
*/

public class VJDecomposition
public class JordanNormalVJ
{
private J _j = null;
private double[][] _v = null;
private JordanNormalJ _j = null;

/**
* <i>VJDecomposition</i> Constructor
* <i>JordanNormalVJ</i> Constructor
*
* @param j <i>J</i> Matrix
* @param v <i>V</i> Matrix
* @param j Jordan Normal <i>J</i>
* @param v Jordan Normal <i>V</i>
*
* @throws Exception Thrown if the Inputs are Invalid
*/

public VJDecomposition (
final J j,
public JordanNormalVJ (
final JordanNormalJ j,
final double[][] v)
throws Exception
{
if (null == (_j = j) || null == (_v = v) || 0 == _v.length || 0 == _v[0].length) {
throw new Exception ("VJDecomposition Constructor => Invalid Inputs");
throw new Exception ("JordanNormalVJ Constructor => Invalid Inputs");
}
}

/**
* Retrieve the <i>J</i> Matrix
* Retrieve the Jordan Normal <i>J</i> Matrix
*
* @return <i>J</i> Matrix
* @return Jordan Normal <i>J</i> Matrix
*/

public J j()
public JordanNormalJ j()
{
return _j;
}

/**
* Retrieve the <i>V</i> Matrix
* Retrieve the Jordan Normal <i>V</i> Matrix
*
* @return <i>V</i> Matrix
* @return Jordan Normal <i>V</i> Matrix
*/

public double[][] v()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

package org.drip.numerical.linearalgebra;
package org.drip.numerical.decomposition;

/*
* -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
Expand Down Expand Up @@ -88,7 +88,7 @@
* <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/ComputationalCore.md">Computational Core Module</a></li>
* <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/NumericalAnalysisLibrary.md">Numerical Analysis Library</a></li>
* <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/README.md">Numerical Quadrature, Differentiation, Eigenization, Linear Algebra, and Utilities</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/linearalgebra/README.md">Linear Algebra Matrix Transform Library</a></li>
* <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/numerical/decomposition/README.md">Jordan Normal, UV, and QR Decompositions</a></li>
* </ul>
* <br><br>
*
Expand Down
Loading

0 comments on commit f07b0b6

Please sign in to comment.