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
31namespace cxsc {
32
33 INLINE void accumulate(idotprecision &dp, const l_rvector & rv1, const ivector &rv2)
34#if(CXSC_INDEX_CHECK)
35
36#else
37 noexcept
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
43#else
44 noexcept
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
50#else
51 noexcept
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
57#else
58 noexcept
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
64#else
65 noexcept
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
71#else
72 noexcept
73#endif
74 ;
75 INLINE void accumulate(idotprecision &dp, const ivector & rv1, const l_rmatrix_subv &rv2)
76#if(CXSC_INDEX_CHECK)
77
78#else
79 noexcept
80#endif
81 ;
82 INLINE void accumulate(idotprecision &dp,const ivector &rv,const l_rvector_slice &sl)
83#if(CXSC_INDEX_CHECK)
84
85#else
86 noexcept
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
92#else
93 noexcept
94#endif
95 ;
96 INLINE void accumulate(idotprecision &dp, const imatrix_subv & rv1, const l_rvector &rv2)
97#if(CXSC_INDEX_CHECK)
98
99#else
100 noexcept
101#endif
102 ;
103 INLINE void accumulate(idotprecision &dp, const ivector_slice & sl1, const l_rvector_slice &sl2)
104#if(CXSC_INDEX_CHECK)
105
106#else
107 noexcept
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
113#else
114 noexcept
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
121#else
122 noexcept
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
128#else
129 noexcept
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
135#else
136 noexcept
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
142#else
143 noexcept
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
150#else
151 noexcept
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
157#else
158 noexcept
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
164#else
165 noexcept
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
171#else
172 noexcept
173#endif
174 { return _vsvslimult<l_rvector_slice,ivector_slice,l_interval>(sl2,sl1); }
175
176} // namespace cxsc
177
178#endif
179
The Data Type idotprecision.
Definition idot.hpp:48
The Data Type ivector_slice.
Definition ivector.hpp:963
The Data Type ivector.
Definition ivector.hpp:55
The Multiple-Precision Data Type l_interval.
The Multiple-Precision Data Type l_rvector_slice.
The Multiple-Precision Data Type l_rvector.
Definition l_rvector.hpp:54
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) noexcept
Implementation of multiplication operation.
Definition cimatrix.inl:731