GNU Octave  4.2.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
op-bm-sbm.cc
Go to the documentation of this file.
1 /*
2 
3 Copyright (C) 2004-2017 David Bateman
4 Copyright (C) 1998-2004 Andy Adler
5 
6 This file is part of Octave.
7 
8 Octave is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published by the
10 Free Software Foundation; either version 3 of the License, or (at your
11 option) any later version.
12 
13 Octave is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with Octave; see the file COPYING. If not, see
20 <http://www.gnu.org/licenses/>.
21 
22 */
23 
24 #if defined (HAVE_CONFIG_H)
25 # include "config.h"
26 #endif
27 
28 #include "errwarn.h"
29 #include "ovl.h"
30 #include "ov.h"
31 #include "ov-typeinfo.h"
32 #include "ov-bool-mat.h"
33 #include "boolMatrix.h"
34 #include "ov-scalar.h"
35 #include "ops.h"
36 
37 #include "ov-re-sparse.h"
38 #include "ov-bool-sparse.h"
39 #include "smx-bm-sbm.h"
40 #include "smx-sbm-bm.h"
41 
42 // bool matrix by sparse bool matrix ops.
43 
44 DEFBINOP_FN (eq, bool_matrix, sparse_bool_matrix, mx_el_eq)
45 DEFBINOP_FN (ne, bool_matrix, sparse_bool_matrix, mx_el_ne)
46 
47 DEFBINOP_FN (el_and, bool_matrix, sparse_bool_matrix, mx_el_and)
48 DEFBINOP_FN (el_or, bool_matrix, sparse_bool_matrix, mx_el_or)
49 
50 DEFCATOP (bm_sbm, bool_matrix, sparse_bool_matrix)
51 {
52  octave_bool_matrix& v1 = dynamic_cast<octave_bool_matrix&> (a1);
54  dynamic_cast<const octave_sparse_bool_matrix&> (a2);
57  ra_idx));
58 }
59 
60 DEFCATOP (m_sbm, matrix, sparse_bool_matrix)
61 {
62  octave_matrix& v1 = dynamic_cast<octave_matrix&> (a1);
64  dynamic_cast<const octave_sparse_bool_matrix&> (a2);
67 }
68 
69 DEFCATOP (bm_sm, bool_matrix, sparse_matrix)
70 {
71  octave_bool_matrix& v1 = dynamic_cast<octave_bool_matrix&> (a1);
72  const octave_sparse_matrix& v2 = dynamic_cast<const octave_sparse_matrix&> (a2);
75 }
76 
77 DEFCONV (sparse_bool_matrix_conv, bool_matrix, sparse_bool_matrix)
78 {
79  const octave_bool_matrix& v = dynamic_cast<const octave_bool_matrix&> (a);
80  return new octave_sparse_bool_matrix
82 }
83 
84 DEFNDASSIGNOP_FN (assign, bool_matrix, sparse_bool_matrix, bool_array, assign)
85 
86 void
88 {
91 
93  el_and);
95  el_or);
96 
100 
102  assign)
105 
107  sparse_bool_matrix_conv);
108 }
SparseMatrix sparse_matrix_value(bool=false) const
Definition: ov-re-sparse.h:127
const octave_base_value const Array< octave_idx_type > & ra_idx
octave_value op_eq(const octave_value &a1, const octave_value &a2)
Definition: ov.h:1524
SparseMatrix sparse_matrix_value(bool=false) const
the sparsity preserving column transformation such that that defines the pivoting threshold can be given in which case it defines the then the first element defines the pivoting tolerance for the unsymmetric the values defined such that for full matrix
Definition: lu.cc:138
ComplexNDArray concat(NDArray &ra, ComplexNDArray &rb, const Array< octave_idx_type > &ra_idx)
Definition: CNDArray.cc:655
#define INSTALL_WIDENOP(t1, t2, f)
Definition: ops.h:70
SparseBoolMatrix sparse_bool_matrix_value(bool=false) const
Matrix matrix_value(bool=false) const
Definition: ov-re-mat.cc:141
#define INSTALL_ASSIGNOP(op, t1, t2, f)
Definition: ops.h:57
const octave_base_value & a2
calling an anonymous function involves an overhead quite comparable to the overhead of an m file function Passing a handle to a built in function is because the interpreter is not involved in the internal loop For a
Definition: cellfun.cc:398
octave_value op_el_or(const octave_value &a1, const octave_value &a2)
Definition: ov.h:1534
#define INSTALL_BINOP(op, t1, t2, f)
Definition: ops.h:48
octave_value op_el_and(const octave_value &a1, const octave_value &a2)
Definition: ov.h:1533
double tmp
Definition: data.cc:6300
boolMatrix mx_el_ne(const boolMatrix &m1, const boolMatrix &m2)
Definition: boolMatrix.cc:90
#define INSTALL_CATOP(t1, t2, f)
Definition: ops.h:53
#define DEFCATOP(name, t1, t2)
Definition: ops.h:321
void install_bm_sbm_ops(void)
Definition: op-bm-sbm.cc:87
const octave_char_matrix & v2
boolMatrix mx_el_or(const boolMatrix &m1, const boolMatrix &m2)
Definition: boolMatrix.cc:87
#define DEFNDASSIGNOP_FN(name, t1, t2, e, f)
Definition: ops.h:105
octave_value op_ne(const octave_value &a1, const octave_value &a2)
Definition: ov.h:1527
boolMatrix mx_el_and(const boolMatrix &m1, const boolMatrix &m2)
Definition: boolMatrix.cc:87
#define DEFCONV(name, a_dummy, b_dummy)
Definition: ops.h:165
#define DEFBINOP_FN(name, t1, t2, f)
Definition: ops.h:283
boolMatrix bool_matrix_value(bool=false) const
Definition: ov-bool-mat.h:179
#define INSTALL_ASSIGNCONV(t1, t2, tr)
Definition: ops.h:66
boolMatrix mx_el_eq(const boolMatrix &m1, const boolMatrix &m2)
Definition: boolMatrix.cc:90
return octave_value(v1.char_array_value().concat(v2.char_array_value(), ra_idx),((a1.is_sq_string()||a2.is_sq_string())? '\'': '"'))
Matrix matrix_value(bool=false) const
Definition: ov-bool-mat.h:138