1
2
/***************************************************************************
2
3
* blitz/array/cartesian.h Cartesian product of indirection containers
4
* Copyright (C) 1997-2001 Todd Veldhuizen <tveldhui@oonumerics.org>
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
7
* Copyright (C) 1997-2011 Todd Veldhuizen <tveldhui@acm.org>
9
* This file is a part of Blitz.
11
* Blitz is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License
13
* as published by the Free Software Foundation, either version 3
9
14
* of the License, or (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
16
* Blitz is distributed in the hope that it will be useful,
12
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
19
* GNU Lesser General Public License for more details.
16
* Suggestions: blitz-dev@oonumerics.org
17
* Bugs: blitz-bugs@oonumerics.org
21
* You should have received a copy of the GNU Lesser General Public
22
* License along with Blitz. If not, see <http://www.gnu.org/licenses/>.
24
* Suggestions: blitz-devel@lists.sourceforge.net
25
* Bugs: blitz-support@lists.sourceforge.net
19
27
* For more information, please see the Blitz++ Home Page:
20
* http://oonumerics.org/blitz/
28
* https://sourceforge.net/projects/blitz/
22
30
****************************************************************************/
23
31
#ifndef BZ_ARRAY_CARTESIAN_H
43
51
typedef T_tuple& reference;
44
52
typedef const T_tuple& const_reference;
45
53
typedef CartesianProductIterator<T_tuple,T_container,N_containers> iterator;
46
typedef int difference_type;
47
typedef int size_type;
50
56
{ return iterator(*this); }