23 #if defined (HAVE_CONFIG_H)
39 assert (nd == y.
ndims ());
42 for (
int i = 0;
i < nd;
i++)
83 if (nargin < 2 || nargin > 3)
91 error (
"dot: X and Y must be numeric");
95 bool match = dimx == dimy;
99 dimx = dimx.
redim (1);
101 dimy = dimy.
redim (1);
103 match = dimx == dimy;
107 error (
"dot: sizes of X and Y must match");
113 dim =
args(2).int_value (
true) - 1;
116 error (
"dot: DIM must be a valid dimension");
179 tmp =
feval (
"sum", tmp, 1);
244 if (
args.length () != 2)
253 error (
"blkmm: A and B must be numeric");
257 int nd = dimx.
ndims ();
262 bool match = dimy(0) == k && nd == dimy.
ndims ();
266 for (
int i = 2; match &&
i < nd;
i++)
268 match = match && dimx(
i) == dimy(
i);
274 error (
"blkmm: A and B dimensions don't match: (%s) and (%s)",
275 dimx.
str ().c_str (), dimy.
str ().c_str ());
ComplexNDArray complex_array_value(bool frc_str_conv=false) const
std::string str(char sep= 'x') const
subroutine cmatm3(m, n, k, np, a, b, c)
octave_value reshape(const dim_vector &dv) const
bool is_vector(void) const
subroutine cdotc3(m, n, k, a, b, c)
OCTINTERP_API void print_usage(void)
#define F77_DBLE_CMPLX_ARG(x)
bool is_numeric_type(void) const
#define DEFUN(name, args_name, nargout_name, doc)
void error(const char *fmt,...)
subroutine smatm3(m, n, k, np, a, b, c)
#define F77_XFCN(f, F, args)
int first_non_singleton(int def=0) const
bool is_float_type(void) const
FloatNDArray float_array_value(bool frc_str_conv=false) const
subroutine dmatm3(m, n, k, np, a, b, c)
nd deftypefn *octave_map m
FloatComplexNDArray float_complex_array_value(bool frc_str_conv=false) const
const T * data(void) const
bool is_complex_type(void) const
dim_vector redim(int n) const
subroutine zmatm3(m, n, k, np, a, b, c)
static dim_vector alloc(int n)
dim_vector dims(void) const
subroutine sdot3(m, n, k, a, b, c)
static void get_red_dims(const dim_vector &x, const dim_vector &y, int dim, dim_vector &z, octave_idx_type &m, octave_idx_type &n, octave_idx_type &k)
#define F77_CONST_DBLE_CMPLX_ARG(x)
NDArray array_value(bool frc_str_conv=false) const
double dot(const ColumnVector &v1, const ColumnVector &v2)
=val(i)}if ode{val(i)}occurs in table i
octave_idx_type ndims(void) const
Number of dimensions.
the element is set to zero In other the statement xample y
#define F77_CONST_CMPLX_ARG(x)
const T * fortran_vec(void) const
bool is_single_type(void) const
Vector representing the dimensions (size) of an Array.
subroutine ddot3(m, n, k, a, b, c)
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE * x
subroutine zdotc3(m, n, k, a, b, c)
octave_value do_binary_op(octave_value::binary_op op, const octave_value &v1, const octave_value &v2)