source: XMLIO_V2/external/include/blitz/array/ops.h @ 80

Last change on this file since 80 was 80, checked in by ymipsl, 14 years ago

ajout lib externe

  • Property svn:eol-style set to native
File size: 5.6 KB
Line 
1// -*- C++ -*-
2/***************************************************************************
3 * blitz/array/ops.h  Array operators
4 *
5 * Copyright (C) 1997-2001 Todd Veldhuizen <tveldhui@oonumerics.org>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * Suggestions:          blitz-dev@oonumerics.org
18 * Bugs:                 blitz-bugs@oonumerics.org
19 *
20 * For more information, please see the Blitz++ Home Page:
21 *    http://oonumerics.org/blitz/
22 *
23 ****************************************************************************/
24#ifndef BZ_ARRAY_OPS_H
25#define BZ_ARRAY_OPS_H
26
27#include <blitz/ops.h>
28#include <blitz/array/newet-macros.h>
29
30BZ_NAMESPACE(blitz)
31   
32// unary operators
33   
34BZ_DECLARE_ARRAY_ET_UNARY(operator~, BitwiseNot)
35BZ_DECLARE_ARRAY_ET_UNARY(operator!, LogicalNot)
36BZ_DECLARE_ARRAY_ET_UNARY(operator+, UnaryPlus)
37BZ_DECLARE_ARRAY_ET_UNARY(operator-, UnaryMinus)
38
39// binary operators
40   
41// operator<< has been commented out because it causes ambiguity
42// with statements like "cout << A".  NEEDS_WORK
43// ditto operator<<
44
45BZ_DECLARE_ARRAY_ET_BINARY(operator+,  Add)
46BZ_DECLARE_ARRAY_ET_BINARY(operator-,  Subtract)
47BZ_DECLARE_ARRAY_ET_BINARY(operator*,  Multiply)
48BZ_DECLARE_ARRAY_ET_BINARY(operator/,  Divide)
49BZ_DECLARE_ARRAY_ET_BINARY(operator%,  Modulo)
50BZ_DECLARE_ARRAY_ET_BINARY(operator^,  BitwiseXor)
51BZ_DECLARE_ARRAY_ET_BINARY(operator&,  BitwiseAnd)
52BZ_DECLARE_ARRAY_ET_BINARY(operator|,  BitwiseOr)
53// BZ_DECLARE_ARRAY_ET_BINARY(operator>>, ShiftRight)
54// BZ_DECLARE_ARRAY_ET_BINARY(operator<<, ShiftLeft)
55BZ_DECLARE_ARRAY_ET_BINARY(operator>,  Greater)
56BZ_DECLARE_ARRAY_ET_BINARY(operator<,  Less)
57BZ_DECLARE_ARRAY_ET_BINARY(operator>=, GreaterOrEqual)
58BZ_DECLARE_ARRAY_ET_BINARY(operator<=, LessOrEqual)
59BZ_DECLARE_ARRAY_ET_BINARY(operator==, Equal)
60BZ_DECLARE_ARRAY_ET_BINARY(operator!=, NotEqual)
61BZ_DECLARE_ARRAY_ET_BINARY(operator&&, LogicalAnd)
62BZ_DECLARE_ARRAY_ET_BINARY(operator||, LogicalOr)
63
64BZ_DECLARE_ARRAY_ET_BINARY(min, _bz_Min)
65BZ_DECLARE_ARRAY_ET_BINARY(max, _bz_Max)
66
67
68// Declare binary ops between Array and "scalar-like" TinyVector
69BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator+,  Add)
70BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator-,  Subtract)
71BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator*,  Multiply)
72BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator/,  Divide)
73BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator%,  Modulo)
74BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator^,  BitwiseXor)
75BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator&,  BitwiseAnd)
76BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator|,  BitwiseOr)
77BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator>,  Greater)
78BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator<,  Less)
79BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator>=, GreaterOrEqual)
80BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator<=, LessOrEqual)
81BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator==, Equal)
82BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator!=, NotEqual)
83BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator&&, LogicalAnd)
84BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(operator||, LogicalOr)
85BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(min, _bz_Min)
86BZ_DECLARE_ARRAY_ET_BINARY_TINYVEC(max, _bz_Max)
87
88
89#define BZ_DECLARE_ARRAY_ET_SCALAR_OPS(sca)                            \
90                                                                       \
91BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator+,  Add, sca)                \
92BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator-,  Subtract, sca)           \
93BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator*,  Multiply, sca)           \
94BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator/,  Divide, sca)             \
95BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator%,  Modulo, sca)             \
96BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator^,  BitwiseXor, sca)         \
97BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator&,  BitwiseAnd, sca)         \
98BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator|,  BitwiseOr, sca)          \
99BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator>,  Greater, sca)            \
100BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator<,  Less, sca)               \
101BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator>=, GreaterOrEqual, sca)     \
102BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator<=, LessOrEqual, sca)        \
103BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator==, Equal, sca)              \
104BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator!=, NotEqual, sca)           \
105BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator&&, LogicalAnd, sca)         \
106BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(operator||, LogicalOr, sca)          \
107BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(min, _bz_Min, sca)                   \
108BZ_DECLARE_ARRAY_ET_BINARY_SCALAR(max, _bz_Max, sca)                   \
109
110   
111BZ_DECLARE_ARRAY_ET_SCALAR_OPS(char)
112BZ_DECLARE_ARRAY_ET_SCALAR_OPS(unsigned char)
113BZ_DECLARE_ARRAY_ET_SCALAR_OPS(short)
114BZ_DECLARE_ARRAY_ET_SCALAR_OPS(unsigned short)
115BZ_DECLARE_ARRAY_ET_SCALAR_OPS(int)
116BZ_DECLARE_ARRAY_ET_SCALAR_OPS(unsigned int)
117BZ_DECLARE_ARRAY_ET_SCALAR_OPS(long)
118BZ_DECLARE_ARRAY_ET_SCALAR_OPS(unsigned long)
119BZ_DECLARE_ARRAY_ET_SCALAR_OPS(float)
120BZ_DECLARE_ARRAY_ET_SCALAR_OPS(double)
121BZ_DECLARE_ARRAY_ET_SCALAR_OPS(long double)
122#ifdef BZ_HAVE_COMPLEX
123BZ_DECLARE_ARRAY_ET_SCALAR_OPS(complex<float>)
124BZ_DECLARE_ARRAY_ET_SCALAR_OPS(complex<double>)
125BZ_DECLARE_ARRAY_ET_SCALAR_OPS(complex<long double>)
126#endif
127
128
129BZ_NAMESPACE_END
130
131#endif // BZ_ARRAY_OPS_H
Note: See TracBrowser for help on using the repository browser.