| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 
 | // Matrix manipulations.
/*
Copyright (C) 1996, 1997 John W. Eaton
This file is part of Octave.
Octave is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
Octave is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with Octave; see the file COPYING.  If not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
*/
#if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION)
#pragma implementation
#endif
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream>
#include "Array-util.h"
#include "lo-error.h"
#include "str-vec.h"
#include "mx-base.h"
#include "mx-inlines.cc"
// boolMatrix class.
bool
boolMatrix::operator == (const boolMatrix& a) const
{
  if (rows () != a.rows () || cols () != a.cols ())
    return 0;
  return mx_inline_equal (data (), a.data (), length ());
}
bool
boolMatrix::operator != (const boolMatrix& a) const
{
  return !(*this == a);
}
boolMatrix&
boolMatrix::insert (const boolMatrix& a, int r, int c)
{
  Array2<bool>::insert (a, r, c);
  return *this;
}
// unary operations
boolMatrix
boolMatrix::operator ! (void) const
{
  int nr = rows ();
  int nc = cols ();
  boolMatrix b (nr, nc);
  for (int j = 0; j < nc; j++)
    for (int i = 0; i < nr; i++)
      b.elem (i, j) = ! elem (i, j);
  return b;
}
// other operations
// XXX FIXME XXX Do these really belong here?  Maybe they should be
// in a base class?
boolMatrix
boolMatrix::all (int dim) const
{
  MX_ALL_OP (dim);
}
boolMatrix
boolMatrix::any (int dim) const
{
  MX_ANY_OP (dim);
}
MM_CMP_OPS (boolMatrix, , boolMatrix, )
/*
;;; Local Variables: ***
;;; mode: C++ ***
;;; End: ***
*/
 |