C-XSC - A C++ Class Library for Extended Scientific Computing  2.5.4
lrvecivec.inl
1 /*
2 ** CXSC is a C++ library for eXtended Scientific Computing (V 2.5.4)
3 **
4 ** Copyright (C) 1990-2000 Institut fuer Angewandte Mathematik,
5 ** Universitaet Karlsruhe, Germany
6 ** (C) 2000-2014 Wiss. Rechnen/Softwaretechnologie
7 ** Universitaet Wuppertal, Germany
8 **
9 ** This library is free software; you can redistribute it and/or
10 ** modify it under the terms of the GNU Library General Public
11 ** License as published by the Free Software Foundation; either
12 ** version 2 of the License, or (at your option) any later version.
13 **
14 ** This library is distributed in the hope that it will be useful,
15 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 ** Library General Public License for more details.
18 **
19 ** You should have received a copy of the GNU Library General Public
20 ** License along with this library; if not, write to the Free
21 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */
23 
24 /* CVS $Id: lrvecivec.inl,v 1.24 2014/01/30 17:23:47 cxsc Exp $ */
25 
26 #ifndef _CXSC_LRVECIVEC_INL_INCLUDED
27 #define _CXSC_LRVECIVEC_INL_INCLUDED
28 
29 #include "l_interval.hpp"
30 
31 namespace cxsc {
32 
33  INLINE void accumulate(idotprecision &dp, const l_rvector & rv1, const ivector &rv2)
34 #if(CXSC_INDEX_CHECK)
35  throw(OP_WITH_WRONG_DIM)
36 #else
37  throw()
38 #endif
39  { _vvaccu(dp,rv1,rv2); }
40  INLINE void accumulate(idotprecision &dp, const ivector & rv1, const l_rvector &rv2)
41 #if(CXSC_INDEX_CHECK)
42  throw(OP_WITH_WRONG_DIM)
43 #else
44  throw()
45 #endif
46  { _vvaccu(dp,rv2,rv1); }
47  INLINE void accumulate(idotprecision &dp, const l_rvector_slice & sl, const ivector &rv)
48 #if(CXSC_INDEX_CHECK)
49  throw(OP_WITH_WRONG_DIM)
50 #else
51  throw()
52 #endif
53  { _vsvaccu(dp,sl,rv); }
54  INLINE void accumulate(idotprecision &dp,const ivector_slice &sl,const l_rvector &rv)
55 #if(CXSC_INDEX_CHECK)
56  throw(OP_WITH_WRONG_DIM)
57 #else
58  throw()
59 #endif
60  { _vsvaccu(dp,sl,rv); }
61  INLINE void accumulate(idotprecision &dp, const l_rvector &rv, const ivector_slice &sl)
62 #if(CXSC_INDEX_CHECK)
63  throw(OP_WITH_WRONG_DIM)
64 #else
65  throw()
66 #endif
67  { _vsvaccu(dp,sl,rv); }
68  INLINE void accumulate(idotprecision &dp, const l_rvector & rv1, const imatrix_subv &rv2)
69 #if(CXSC_INDEX_CHECK)
70  throw(OP_WITH_WRONG_DIM)
71 #else
72  throw()
73 #endif
74  ;
75  INLINE void accumulate(idotprecision &dp, const ivector & rv1, const l_rmatrix_subv &rv2)
76 #if(CXSC_INDEX_CHECK)
77  throw(OP_WITH_WRONG_DIM)
78 #else
79  throw()
80 #endif
81  ;
82  INLINE void accumulate(idotprecision &dp,const ivector &rv,const l_rvector_slice &sl)
83 #if(CXSC_INDEX_CHECK)
84  throw(OP_WITH_WRONG_DIM)
85 #else
86  throw()
87 #endif
88  { _vsvaccu(dp,sl,rv); }
89  INLINE void accumulate(idotprecision &dp, const l_rmatrix_subv & rv1, const ivector &rv2)
90 #if(CXSC_INDEX_CHECK)
91  throw(OP_WITH_WRONG_DIM)
92 #else
93  throw()
94 #endif
95  ;
96  INLINE void accumulate(idotprecision &dp, const imatrix_subv & rv1, const l_rvector &rv2)
97 #if(CXSC_INDEX_CHECK)
98  throw(OP_WITH_WRONG_DIM)
99 #else
100  throw()
101 #endif
102  ;
103  INLINE void accumulate(idotprecision &dp, const ivector_slice & sl1, const l_rvector_slice &sl2)
104 #if(CXSC_INDEX_CHECK)
105  throw(OP_WITH_WRONG_DIM)
106 #else
107  throw()
108 #endif
109  { _vsvsaccu(dp,sl2,sl1); }
110  INLINE void accumulate(idotprecision &dp, const l_rvector_slice & sl1, const ivector_slice &sl2)
111 #if(CXSC_INDEX_CHECK)
112  throw(OP_WITH_WRONG_DIM)
113 #else
114  throw()
115 #endif
116  { _vsvsaccu(dp,sl1,sl2); }
117 
118  INLINE l_interval operator *(const l_rvector & rv1, const ivector &rv2)
119 #if(CXSC_INDEX_CHECK)
120  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
121 #else
122  throw()
123 #endif
124  { return _vvlimult<l_rvector,ivector,l_interval>(rv1,rv2); }
125  INLINE l_interval operator *(const l_rvector_slice &sl, const ivector &rv)
126 #if(CXSC_INDEX_CHECK)
127  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
128 #else
129  throw()
130 #endif
131  { return _vsvlimult<l_rvector_slice,ivector,l_interval>(sl,rv); }
132  INLINE l_interval operator *(const l_rvector &rv, const ivector_slice &sl)
133 #if(CXSC_INDEX_CHECK)
134  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
135 #else
136  throw()
137 #endif
138  { return _vsvlimult<ivector_slice,l_rvector,l_interval>(sl,rv); }
139  INLINE l_interval operator *(const l_rvector_slice & sl1, const ivector_slice &sl2)
140 #if(CXSC_INDEX_CHECK)
141  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
142 #else
143  throw()
144 #endif
145  { return _vsvslimult<l_rvector_slice,ivector_slice,l_interval>(sl1,sl2); }
146 
147  INLINE l_interval operator *(const ivector & rv1, const l_rvector &rv2)
148 #if(CXSC_INDEX_CHECK)
149  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
150 #else
151  throw()
152 #endif
153  { return _vvlimult<l_rvector,ivector,l_interval>(rv2,rv1); }
154  INLINE l_interval operator *(const ivector_slice &sl, const l_rvector &rv)
155 #if(CXSC_INDEX_CHECK)
156  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
157 #else
158  throw()
159 #endif
160  { return _vsvlimult<ivector_slice,l_rvector,l_interval>(sl,rv); }
161  INLINE l_interval operator *(const ivector &rv, const l_rvector_slice &sl)
162 #if(CXSC_INDEX_CHECK)
163  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
164 #else
165  throw()
166 #endif
167  { return _vsvlimult<l_rvector_slice,ivector,l_interval>(sl,rv); }
168  INLINE l_interval operator *(const ivector_slice & sl1, const l_rvector_slice &sl2)
169 #if(CXSC_INDEX_CHECK)
170  throw(ERROR__OP_WITH_WRONG_DIM<l_ivector>)
171 #else
172  throw()
173 #endif
174  { return _vsvslimult<l_rvector_slice,ivector_slice,l_interval>(sl2,sl1); }
175 
176 } // namespace cxsc
177 
178 #endif
179 
The Multiple-Precision Data Type l_interval.
Definition: l_interval.hpp:71
The Data Type idotprecision.
Definition: idot.hpp:47
The namespace cxsc, providing all functionality of the class library C-XSC.
Definition: cdot.cpp:29
civector operator*(const cimatrix_subv &rv, const cinterval &s)
Implementation of multiplication operation.
Definition: cimatrix.inl:731
The Data Type ivector_slice.
Definition: ivector.hpp:962
The Data Type ivector.
Definition: ivector.hpp:54
The Multiple-Precision Data Type l_rvector.
Definition: l_rvector.hpp:53
The Multiple-Precision Data Type l_rvector_slice.
Definition: l_rvector.hpp:744