code: package cc.mallet.types;
  
  public interface ConstantMatrix
  {
  	public int getNumDimensions ();
  	public int getDimensions (int[] sizes);
  	public double value (int[] indices);
  
  	// Access using a single index, efficient for dense matrices, but not sparse
  	// Move to DenseMatrix?
  	public int singleIndex (int[] indices);
  	public void singleToIndices (int i, int[] indices);
  	public double singleValue (int i);
  	public int singleSize ();
  
  	// Access by index into sparse array, efficient for sparse and dense matrices
  	public int numLocations ();
  	public int location (int index);
  	public double valueAtLocation (int location);
  	// Returns a "singleIndex"
  	public int indexAtLocation (int location);
  	
  	public double dotProduct (ConstantMatrix m);
  	public double absNorm ();
  	public double oneNorm ();
  	public double twoNorm ();
  	public double infinityNorm ();
  
  	public void print();
  	public boolean isNaN();
  
  	public ConstantMatrix cloneMatrix ();
  
  }
  