<?php
namespace Arma\Internal;
/**
* Interface for a dense matrix.
*
* @package Arma
*/
interface DenseMatrix extends Dense, Matrix
{
// Subview
* {@inheritdoc}
* @param int $i
* @param int $j[optional]
* @return \Arma\MapVal
function at($i, $j);
* @param int $col_number
* @return \Arma\SvCol
function col($col_number);
* @param int $row_number
* @return \Arma\SvRow
function row($row_number);
* @param int $first_col
* @param int $last_col
* @return \Arma\SvMat
function cols($first_col, $last_col);
* @param int $first_row
* @param int $last_row
function rows($first_row, $last_row);
function submat($first_row, $first_col, $last_row, $last_col);
* @param int $n_cols
function head_cols($n_cols);
* @param int $n_rows
function head_rows($n_rows);
function tail_cols($n_cols);
function tail_rows($n_rows);
* @param int $k[optional]
* @return \Arma\DiagView
function diag($k = 0);
// Iteration
* Apply a callback function to each row of the matrix.
* @param callable $action (\Arma\SvRow) -> void
* @return void
function eachRow($action);
* Apply a callback function to each column of the matrix.
* @param callable $action (\Arma\SvCol) -> void
function eachCol($action);
// Transform
* Returns an inverse of the matrix.
* @return DenseMatrix
function i();
}