|
|
|
@ -60,6 +60,23 @@ namespace MathNet.Numerics.LinearAlgebra.Storage |
|
|
|
ColumnCount = columnCount; |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// True if the matrix storage format is dense.
|
|
|
|
/// </summary>
|
|
|
|
public abstract bool IsDense { get; } |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// True if all fields of this matrix can be set to any value.
|
|
|
|
/// False if some fields are fixed, like on a diagonal matrix.
|
|
|
|
/// </summary>
|
|
|
|
public abstract bool IsFullyMutable { get; } |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// True if the specified field can be set to any value.
|
|
|
|
/// False if the field is fixed, like an off-diagonal field on a diagonal matrix.
|
|
|
|
/// </summary>
|
|
|
|
public abstract bool IsMutableAt(int row, int column); |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Gets or sets the value at the given row and column, with range checking.
|
|
|
|
/// </summary>
|
|
|
|
@ -111,24 +128,6 @@ namespace MathNet.Numerics.LinearAlgebra.Storage |
|
|
|
/// <remarks>WARNING: This method is not thread safe. Use "lock" with it and be sure to avoid deadlocks.</remarks>
|
|
|
|
public abstract void At(int row, int column, T value); |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// True if all fields of this matrix can be set to any value.
|
|
|
|
/// False if some fields are fixed, like on a diagonal matrix.
|
|
|
|
/// </summary>
|
|
|
|
public virtual bool IsFullyMutable |
|
|
|
{ |
|
|
|
get { return true; } |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// True if the specified field can be set to any value.
|
|
|
|
/// False if the field is fixed, like an off-diagonal field on a diagonal matrix.
|
|
|
|
/// </summary>
|
|
|
|
public virtual bool IsMutable(int row, int column) |
|
|
|
{ |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
public virtual void Clear() |
|
|
|
{ |
|
|
|
for (var i = 0; i < RowCount; i++) |
|
|
|
|