@ -470,16 +470,14 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
public virtual Matrix < T > LowerTriangle ( )
public virtual Matrix < T > LowerTriangle ( )
{
{
var ret = CreateMatrix ( RowCount , ColumnCount ) ;
var ret = CreateMatrix ( RowCount , ColumnCount ) ;
CommonParallel . For (
for ( var j = 0 ; j < ColumnCount ; j + + )
0 ,
{
ColumnCount ,
for ( var i = j ; i < RowCount ; i + + )
j = >
{
{
for ( var i = j ; i < RowCount ; i + + )
ret . At ( i , j , At ( i , j ) ) ;
{
}
ret . At ( i , j , At ( i , j ) ) ;
}
}
} ) ;
return ret ;
return ret ;
}
}
@ -501,16 +499,13 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
}
}
CommonParallel . For (
for ( var j = 0 ; j < ColumnCount ; j + + )
0 ,
{
ColumnCount ,
for ( var i = 0 ; i < RowCount ; i + + )
j = >
{
{
for ( var i = 0 ; i < RowCount ; i + + )
result . At ( i , j , i > = j ? At ( i , j ) : default ( T ) ) ;
{
}
result . At ( i , j , i > = j ? At ( i , j ) : default ( T ) ) ;
}
}
} ) ;
}
}
/// <summary>
/// <summary>
@ -520,10 +515,9 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
public virtual Matrix < T > UpperTriangle ( )
public virtual Matrix < T > UpperTriangle ( )
{
{
var ret = CreateMatrix ( RowCount , ColumnCount ) ;
var ret = CreateMatrix ( RowCount , ColumnCount ) ;
CommonParallel . For (
0 ,
for ( var j = 0 ; j < ColumnCount ; j + + )
ColumnCount ,
{
j = >
{
{
for ( var i = 0 ; i < RowCount ; i + + )
for ( var i = 0 ; i < RowCount ; i + + )
{
{
@ -532,7 +526,9 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
ret . At ( i , j , At ( i , j ) ) ;
ret . At ( i , j , At ( i , j ) ) ;
}
}
}
}
} ) ;
}
}
return ret ;
return ret ;
}
}
@ -554,16 +550,13 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
}
}
CommonParallel . For (
for ( var j = 0 ; j < ColumnCount ; j + + )
0 ,
{
ColumnCount ,
for ( var i = 0 ; i < RowCount ; i + + )
j = >
{
{
for ( var i = 0 ; i < RowCount ; i + + )
result . At ( i , j , i < = j ? At ( i , j ) : default ( T ) ) ;
{
}
result . At ( i , j , i < = j ? At ( i , j ) : default ( T ) ) ;
}
}
} ) ;
}
}
/// <summary>
/// <summary>
@ -619,16 +612,14 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
var result = CreateMatrix ( rowLength , columnLength ) ;
var result = CreateMatrix ( rowLength , columnLength ) ;
CommonParallel . For (
for ( var j = columnIndex ; j < colMax ; j + + )
columnIndex ,
{
colMax ,
for ( int i = rowIndex , ii = 0 ; i < rowMax ; i + + , ii + + )
j = >
{
{
for ( int i = rowIndex , ii = 0 ; i < rowMax ; i + + , ii + + )
result . At ( ii , j - columnIndex , At ( i , j ) ) ;
{
}
result . At ( ii , j - columnIndex , At ( i , j ) ) ;
}
}
} ) ;
return result ;
return result ;
}
}
@ -741,10 +732,12 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
{
{
var min = Math . Min ( RowCount , ColumnCount ) ;
var min = Math . Min ( RowCount , ColumnCount ) ;
var diagonal = CreateVector ( min ) ;
var diagonal = CreateVector ( min ) ;
CommonParallel . For (
0 ,
for ( var i = 0 ; i < min ; i + + )
min ,
{
i = > { diagonal [ i ] = At ( i , i ) ; } ) ;
diagonal [ i ] = At ( i , i ) ;
}
return diagonal ;
return diagonal ;
}
}
@ -756,19 +749,18 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
public virtual Matrix < T > StrictlyLowerTriangle ( )
public virtual Matrix < T > StrictlyLowerTriangle ( )
{
{
var result = CreateMatrix ( RowCount , ColumnCount ) ;
var result = CreateMatrix ( RowCount , ColumnCount ) ;
CommonParallel . For (
0 ,
for ( var i = 0 ; i < RowCount ; i + + )
RowCount ,
{
i = >
for ( var j = 0 ; j < ColumnCount ; j + + )
{
{
for ( var j = 0 ; j < ColumnCount ; j + + )
if ( i > j )
{
{
if ( i > j )
result . At ( i , j , At ( i , j ) ) ;
{
result . At ( i , j , At ( i , j ) ) ;
}
}
}
} ) ;
}
}
return result ;
return result ;
}
}
@ -790,16 +782,13 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < RowCount ; i + + )
0 ,
{
RowCount ,
for ( var j = 0 ; j < ColumnCount ; j + + )
i = >
{
{
for ( var j = 0 ; j < ColumnCount ; j + + )
result . At ( i , j , i > j ? At ( i , j ) : default ( T ) ) ;
{
}
result . At ( i , j , i > j ? At ( i , j ) : default ( T ) ) ;
}
}
} ) ;
}
}
/// <summary>
/// <summary>
@ -810,19 +799,18 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
public virtual Matrix < T > StrictlyUpperTriangle ( )
public virtual Matrix < T > StrictlyUpperTriangle ( )
{
{
var result = CreateMatrix ( RowCount , ColumnCount ) ;
var result = CreateMatrix ( RowCount , ColumnCount ) ;
CommonParallel . For (
0 ,
for ( var i = 0 ; i < RowCount ; i + + )
RowCount ,
{
i = >
for ( var j = 0 ; j < ColumnCount ; j + + )
{
{
for ( var j = 0 ; j < ColumnCount ; j + + )
if ( i < j )
{
{
if ( i < j )
result . At ( i , j , At ( i , j ) ) ;
{
result . At ( i , j , At ( i , j ) ) ;
}
}
}
} ) ;
}
}
return result ;
return result ;
}
}
@ -844,16 +832,13 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < RowCount ; i + + )
0 ,
{
RowCount ,
for ( var j = 0 ; j < ColumnCount ; j + + )
i = >
{
{
for ( var j = 0 ; j < ColumnCount ; j + + )
result . At ( i , j , i < j ? At ( i , j ) : default ( T ) ) ;
{
}
result . At ( i , j , i < j ? At ( i , j ) : default ( T ) ) ;
}
}
} ) ;
}
}
/// <summary>
/// <summary>
@ -928,10 +913,10 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "column" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "column" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < RowCount ; i + + )
0 ,
{
RowCount ,
At ( i , columnIndex , column [ i ] ) ;
i = > At ( i , columnIndex , column [ i ] ) ) ;
}
}
}
/// <summary>
/// <summary>
@ -961,10 +946,10 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "column" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "column" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < RowCount ; i + + )
0 ,
{
RowCount ,
At ( i , columnIndex , column [ i ] ) ;
i = > At ( i , columnIndex , column [ i ] ) ) ;
}
}
}
/// <summary>
/// <summary>
@ -1037,10 +1022,10 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "row" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "row" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < ColumnCount ; i + + )
0 ,
{
ColumnCount ,
At ( rowIndex , i , row [ i ] ) ;
i = > At ( rowIndex , i , row [ i ] ) ) ;
}
}
}
/// <summary>
/// <summary>
@ -1070,10 +1055,10 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "row" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixSameRowDimension , "row" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < ColumnCount ; i + + )
0 ,
{
ColumnCount ,
At ( rowIndex , i , row [ i ] ) ;
i = > At ( rowIndex , i , row [ i ] ) ) ;
}
}
}
/// <summary>
/// <summary>
@ -1144,16 +1129,13 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentOutOfRangeException ( "columnLength" ) ;
throw new ArgumentOutOfRangeException ( "columnLength" ) ;
}
}
CommonParallel . For (
for ( var j = columnIndex ; j < colMax ; j + + )
columnIndex ,
{
colMax ,
for ( int i = rowIndex , ii = 0 ; i < rowMax ; i + + , ii + + )
j = >
{
{
for ( int i = rowIndex , ii = 0 ; i < rowMax ; i + + , ii + + )
At ( i , j , subMatrix [ ii , j - columnIndex ] ) ;
{
}
At ( i , j , subMatrix [ ii , j - columnIndex ] ) ;
}
}
} ) ;
}
}
/// <summary>
/// <summary>
@ -1180,10 +1162,10 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentVectorsSameLength , "source" ) ;
throw new ArgumentException ( Resources . ArgumentVectorsSameLength , "source" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < min ; i + + )
0 ,
{
min ,
At ( i , i , source [ i ] ) ;
i = > At ( i , i , source [ i ] ) ) ;
}
}
}
/// <summary>
/// <summary>
@ -1210,10 +1192,10 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentArraysSameLength , "source" ) ;
throw new ArgumentException ( Resources . ArgumentArraysSameLength , "source" ) ;
}
}
CommonParallel . For (
for ( var i = 0 ; i < min ; i + + )
0 ,
{
min ,
At ( i , i , source [ i ] ) ;
i = > At ( i , i , source [ i ] ) ) ;
}
}
}
/// <summary>
/// <summary>
@ -1677,27 +1659,21 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
}
}
CommonParallel . Invoke (
for ( var i = 0 ; i < RowCount ; i + + )
( ) = >
{
for ( var j = 0 ; j < ColumnCount ; j + + )
{
{
for ( var i = 0 ; i < RowCount ; i + + )
result . At ( i , j , At ( i , j ) ) ;
{
}
for ( var j = 0 ; j < ColumnCount ; j + + )
}
{
result . At ( i , j , At ( i , j ) ) ;
for ( var i = 0 ; i < lower . RowCount ; i + + )
}
{
}
for ( var j = 0 ; j < ColumnCount ; j + + )
} ,
( ) = >
{
{
for ( var i = 0 ; i < lower . RowCount ; i + + )
result . At ( i + RowCount , j , lower . At ( i , j ) ) ;
{
}
for ( var j = 0 ; j < ColumnCount ; j + + )
}
{
result . At ( i + RowCount , j , lower . At ( i , j ) ) ;
}
}
} ) ;
}
}
/// <summary>
/// <summary>
@ -1745,27 +1721,21 @@ namespace MathNet.Numerics.LinearAlgebra.Generic
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
throw new ArgumentException ( Resources . ArgumentMatrixDimensions , "result" ) ;
}
}
CommonParallel . Invoke (
for ( var i = 0 ; i < RowCount ; i + + )
( ) = >
{
for ( var j = 0 ; j < ColumnCount ; j + + )
{
{
for ( var i = 0 ; i < RowCount ; i + + )
result . At ( i , j , At ( i , j ) ) ;
{
}
for ( var j = 0 ; j < ColumnCount ; j + + )
}
{
result . At ( i , j , At ( i , j ) ) ;
for ( var i = 0 ; i < lower . RowCount ; i + + )
}
{
}
for ( var j = 0 ; j < lower . ColumnCount ; j + + )
} ,
( ) = >
{
{
for ( var i = 0 ; i < lower . RowCount ; i + + )
result . At ( i + RowCount , j + ColumnCount , lower . At ( i , j ) ) ;
{
}
for ( var j = 0 ; j < lower . ColumnCount ; j + + )
}
{
result . At ( i + RowCount , j + ColumnCount , lower . At ( i , j ) ) ;
}
}
} ) ;
}
}
/// <summary>Calculates the L1 norm.</summary>
/// <summary>Calculates the L1 norm.</summary>