/[escript]/trunk/escript/src/DataArrayView.h
ViewVC logotype

Diff of /trunk/escript/src/DataArrayView.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 682 by robwdcock, Mon Mar 27 02:43:09 2006 UTC revision 757 by woo409, Mon Jun 26 13:12:56 2006 UTC
# Line 14  Line 14 
14    
15  #if !defined escript_DataArrayView_20040323_H  #if !defined escript_DataArrayView_20040323_H
16  #define escript_DataArrayView_20040323_H  #define escript_DataArrayView_20040323_H
17    #include "system_dep.h"
18    
19  #include "esysUtils/EsysAssert.h"  #include "esysUtils/EsysAssert.h"
20    
# Line 48  namespace escript { Line 49  namespace escript {
49    
50  class DataArrayView {  class DataArrayView {
51    
52    friend bool operator==(const DataArrayView& left, const DataArrayView& right);    ESCRIPT_DLL_API friend bool operator==(const DataArrayView& left, const DataArrayView& right);
53    friend bool operator!=(const DataArrayView& left, const DataArrayView& right);    ESCRIPT_DLL_API friend bool operator!=(const DataArrayView& left, const DataArrayView& right);
54    
55   public:   public:
56    
# Line 71  class DataArrayView { Line 72  class DataArrayView {
72    
73       This is essentially useless but here for completeness.       This is essentially useless but here for completeness.
74    */    */
75      ESCRIPT_DLL_API
76    DataArrayView();    DataArrayView();
77    
78    /**    /**
# Line 89  class DataArrayView { Line 91  class DataArrayView {
91       \param offset - Input -       \param offset - Input -
92                  Offset into the data at which view should start.                  Offset into the data at which view should start.
93    */    */
94      ESCRIPT_DLL_API
95    DataArrayView(ValueType& data,    DataArrayView(ValueType& data,
96                  const ShapeType& viewShape,                  const ShapeType& viewShape,
97                  int offset=0);                  int offset=0);
# Line 105  class DataArrayView { Line 108  class DataArrayView {
108    
109       NOTE: The copy references the same data array.       NOTE: The copy references the same data array.
110    */    */
111      ESCRIPT_DLL_API
112    DataArrayView(const DataArrayView& other);    DataArrayView(const DataArrayView& other);
113    
114    /**    /**
# Line 112  class DataArrayView { Line 116  class DataArrayView {
116       Copy from a numarray into the data array viewed by this.       Copy from a numarray into the data array viewed by this.
117       This must have same shape as the given value - will throw if not.       This must have same shape as the given value - will throw if not.
118    */    */
119      ESCRIPT_DLL_API
120    void    void
121    copy(const boost::python::numeric::array& value);    copy(const boost::python::numeric::array& value);
122    
# Line 122  class DataArrayView { Line 127  class DataArrayView {
127       The shapes of both views must be the same - will throw if not.       The shapes of both views must be the same - will throw if not.
128       NB: views may or may not reference same underlying data array!       NB: views may or may not reference same underlying data array!
129    */    */
130      ESCRIPT_DLL_API
131    void    void
132    copy(const DataArrayView& other);    copy(const DataArrayView& other);
133    
# Line 132  class DataArrayView { Line 138  class DataArrayView {
138       The shapes of both views must be the same - will throw if not.       The shapes of both views must be the same - will throw if not.
139       NB: views may or may not reference same underlying data array!       NB: views may or may not reference same underlying data array!
140    */    */
141      ESCRIPT_DLL_API
142    void    void
143    copy(ValueType::size_type offset,    copy(ValueType::size_type offset,
144         const DataArrayView& other);         const DataArrayView& other);
# Line 150  class DataArrayView { Line 157  class DataArrayView {
157       \param otherOffset - Input -       \param otherOffset - Input -
158                     Offset into the other view's data array to copy from.                     Offset into the other view's data array to copy from.
159    */    */
160      ESCRIPT_DLL_API
161    void    void
162    copy(ValueType::size_type thisOffset,    copy(ValueType::size_type thisOffset,
163         const DataArrayView& other,         const DataArrayView& other,
# Line 165  class DataArrayView { Line 173  class DataArrayView {
173       \param value - Input -       \param value - Input -
174                     Value to copy.                     Value to copy.
175    */    */
176      ESCRIPT_DLL_API
177    void    void
178    copy(ValueType::size_type offset,    copy(ValueType::size_type offset,
179         ValueType::value_type value);         ValueType::value_type value);
# Line 173  class DataArrayView { Line 182  class DataArrayView {
182       \brief       \brief
183       Check if view is empty. ie: does not point to any actual data.       Check if view is empty. ie: does not point to any actual data.
184    */    */
185      ESCRIPT_DLL_API
186    bool    bool
187    isEmpty() const;    isEmpty() const;
188    
# Line 180  class DataArrayView { Line 190  class DataArrayView {
190      \brief      \brief
191      Return this view's offset into the viewed data array.      Return this view's offset into the viewed data array.
192    */    */
193      ESCRIPT_DLL_API
194    ValueType::size_type    ValueType::size_type
195    getOffset() const;    getOffset() const;
196    
# Line 190  class DataArrayView { Line 201  class DataArrayView {
201       the offset by noValues successively. Thus this view would provide a moving       the offset by noValues successively. Thus this view would provide a moving
202       window on the underlying data with the given shape.       window on the underlying data with the given shape.
203    */    */
204      ESCRIPT_DLL_API
205    void    void
206    setOffset(ValueType::size_type offset);    setOffset(ValueType::size_type offset);
207    
# Line 199  class DataArrayView { Line 211  class DataArrayView {
211       moving the view onto the next data point of the given shape in the underlying       moving the view onto the next data point of the given shape in the underlying
212       data array.       data array.
213    */    */
214      ESCRIPT_DLL_API
215    void    void
216    incrOffset();    incrOffset();
217    
# Line 207  class DataArrayView { Line 220  class DataArrayView {
220       Check the (given) offset will not result in two few values being available in       Check the (given) offset will not result in two few values being available in
221       the underlying data array for this view's shape.       the underlying data array for this view's shape.
222    */    */
223      ESCRIPT_DLL_API
224    bool    bool
225    checkOffset() const;    checkOffset() const;
226    
227      ESCRIPT_DLL_API
228    bool    bool
229    checkOffset(ValueType::size_type offset) const;    checkOffset(ValueType::size_type offset) const;
230    
# Line 217  class DataArrayView { Line 232  class DataArrayView {
232      \brief      \brief
233       Return the rank of the shape of this view.       Return the rank of the shape of this view.
234    */    */
235      ESCRIPT_DLL_API
236    int    int
237    getRank() const;    getRank() const;
238    
# Line 224  class DataArrayView { Line 240  class DataArrayView {
240       \brief       \brief
241       Return the number of values for the shape of this view.       Return the number of values for the shape of this view.
242    */    */
243      ESCRIPT_DLL_API
244    int    int
245    noValues() const;    noValues() const;
246    
# Line 232  class DataArrayView { Line 249  class DataArrayView {
249       Calculate the number of values for the given shape or region.       Calculate the number of values for the given shape or region.
250       This is purely a utility method and has no bearing on this view.       This is purely a utility method and has no bearing on this view.
251    */    */
252      ESCRIPT_DLL_API
253    static    static
254    int    int
255    noValues(const ShapeType& shape);    noValues(const ShapeType& shape);
256    
257      ESCRIPT_DLL_API
258    static    static
259    int    int
260    noValues(const RegionLoopRangeType& region);    noValues(const RegionLoopRangeType& region);
# Line 244  class DataArrayView { Line 263  class DataArrayView {
263       \brief       \brief
264       Return a reference to the underlying data array.       Return a reference to the underlying data array.
265    */    */
266      ESCRIPT_DLL_API
267    ValueType&    ValueType&
268    getData() const;    getData() const;
269    
# Line 252  class DataArrayView { Line 272  class DataArrayView {
272       Return a reference to the data value with the given       Return a reference to the data value with the given
273       index in this view. This takes into account the offset.       index in this view. This takes into account the offset.
274    */    */
275      ESCRIPT_DLL_API
276    ValueType::reference    ValueType::reference
277    getData(ValueType::size_type i) const;    getData(ValueType::size_type i) const;
278    
# Line 259  class DataArrayView { Line 280  class DataArrayView {
280       \brief       \brief
281       Return the shape of this view.       Return the shape of this view.
282    */    */
283      ESCRIPT_DLL_API
284    const    const
285    ShapeType&    ShapeType&
286    getShape() const;    getShape() const;
# Line 267  class DataArrayView { Line 289  class DataArrayView {
289       \brief       \brief
290       Return true if the given shape is the same as this view's shape.       Return true if the given shape is the same as this view's shape.
291    */    */
292      ESCRIPT_DLL_API
293    bool    bool
294    checkShape(const ShapeType& other) const;    checkShape(const ShapeType& other) const;
295    
# Line 280  class DataArrayView { Line 303  class DataArrayView {
303       \param other - Input -       \param other - Input -
304                         The other shape.                         The other shape.
305    */    */
306      ESCRIPT_DLL_API
307    std::string    std::string
308    createShapeErrorMessage(const std::string& messagePrefix,    createShapeErrorMessage(const std::string& messagePrefix,
309                            const ShapeType& other) const;                            const ShapeType& other) const;
# Line 292  class DataArrayView { Line 316  class DataArrayView {
316       \param suffix - Input -       \param suffix - Input -
317                         Suffix appended to index display.                         Suffix appended to index display.
318    */    */
319      ESCRIPT_DLL_API
320    std::string    std::string
321    toString(const std::string& suffix=std::string("")) const;    toString(const std::string& suffix=std::string("")) const;
322    
# Line 302  class DataArrayView { Line 327  class DataArrayView {
327    
328       \param shape - Input.       \param shape - Input.
329    */    */
330      ESCRIPT_DLL_API
331    static    static
332    std::string    std::string
333    shapeToString(const ShapeType& shape);    shapeToString(const ShapeType& shape);
# Line 312  class DataArrayView { Line 338  class DataArrayView {
338      in the view, *ignoring the offset*.      in the view, *ignoring the offset*.
339      Assumes a rank 0 view.      Assumes a rank 0 view.
340    */    */
341      ESCRIPT_DLL_API
342    ValueType::size_type    ValueType::size_type
343    relIndex() const;    relIndex() const;
344    
# Line 321  class DataArrayView { Line 348  class DataArrayView {
348      position i in the view, *ignoring the offset*.      position i in the view, *ignoring the offset*.
349      Assumes a rank 1 view.      Assumes a rank 1 view.
350    */    */
351      ESCRIPT_DLL_API
352    ValueType::size_type    ValueType::size_type
353    relIndex(ValueType::size_type i) const;    relIndex(ValueType::size_type i) const;
354    
# Line 330  class DataArrayView { Line 358  class DataArrayView {
358      position i,j in the view, *ignoring the offset*.      position i,j in the view, *ignoring the offset*.
359      Assumes a rank 2 view.      Assumes a rank 2 view.
360    */    */
361      ESCRIPT_DLL_API
362    ValueType::size_type    ValueType::size_type
363    relIndex(ValueType::size_type i,    relIndex(ValueType::size_type i,
364             ValueType::size_type j) const;             ValueType::size_type j) const;
# Line 340  class DataArrayView { Line 369  class DataArrayView {
369      position i,j,k in the view, *ignoring the offset*.      position i,j,k in the view, *ignoring the offset*.
370      Assumes a rank 3 view.      Assumes a rank 3 view.
371    */    */
372      ESCRIPT_DLL_API
373    ValueType::size_type    ValueType::size_type
374    relIndex(ValueType::size_type i,    relIndex(ValueType::size_type i,
375             ValueType::size_type j,             ValueType::size_type j,
# Line 351  class DataArrayView { Line 381  class DataArrayView {
381      position i,j,k,m in the view, *ignoring the offset*.      position i,j,k,m in the view, *ignoring the offset*.
382      Assumes a rank 4 view.      Assumes a rank 4 view.
383    */    */
384      ESCRIPT_DLL_API
385    ValueType::size_type    ValueType::size_type
386    relIndex(ValueType::size_type i,    relIndex(ValueType::size_type i,
387             ValueType::size_type j,             ValueType::size_type j,
# Line 363  class DataArrayView { Line 394  class DataArrayView {
394      in the view.      in the view.
395      Assumes a rank 0 view.      Assumes a rank 0 view.
396    */    */
397      ESCRIPT_DLL_API
398    ValueType::size_type    ValueType::size_type
399    index() const;    index() const;
400    
# Line 372  class DataArrayView { Line 404  class DataArrayView {
404      position i in the view.      position i in the view.
405      Assumes a rank 1 view.      Assumes a rank 1 view.
406    */    */
407      ESCRIPT_DLL_API
408    ValueType::size_type    ValueType::size_type
409    index(ValueType::size_type i) const;    index(ValueType::size_type i) const;
410    
# Line 381  class DataArrayView { Line 414  class DataArrayView {
414      position i,j in the view.      position i,j in the view.
415      Assumes a rank 2 view.      Assumes a rank 2 view.
416    */    */
417      ESCRIPT_DLL_API
418    ValueType::size_type    ValueType::size_type
419    index(ValueType::size_type i,    index(ValueType::size_type i,
420          ValueType::size_type j) const;          ValueType::size_type j) const;
# Line 391  class DataArrayView { Line 425  class DataArrayView {
425      position i,j,k in the view.      position i,j,k in the view.
426      Assumes a rank 3 view.      Assumes a rank 3 view.
427    */    */
428      ESCRIPT_DLL_API
429    ValueType::size_type    ValueType::size_type
430    index(ValueType::size_type i,    index(ValueType::size_type i,
431          ValueType::size_type j,          ValueType::size_type j,
# Line 402  class DataArrayView { Line 437  class DataArrayView {
437      position i,j,k,m in the view.      position i,j,k,m in the view.
438      Assumes a rank 4 view.      Assumes a rank 4 view.
439    */    */
440      ESCRIPT_DLL_API
441    ValueType::size_type    ValueType::size_type
442    index(ValueType::size_type i,    index(ValueType::size_type i,
443          ValueType::size_type j,          ValueType::size_type j,
# Line 413  class DataArrayView { Line 449  class DataArrayView {
449      Return a reference for the only element in the view.      Return a reference for the only element in the view.
450      Assumes a rank 0 view.      Assumes a rank 0 view.
451    */    */
452      ESCRIPT_DLL_API
453    ValueType::reference    ValueType::reference
454    operator()();    operator()();
455    
456      ESCRIPT_DLL_API
457    ValueType::const_reference    ValueType::const_reference
458    operator()() const;    operator()() const;
459    
# Line 424  class DataArrayView { Line 462  class DataArrayView {
462      Return a reference to the element at position i in the view.      Return a reference to the element at position i in the view.
463      Assumes a rank 1 view.      Assumes a rank 1 view.
464    */    */
465      ESCRIPT_DLL_API
466    ValueType::reference    ValueType::reference
467    operator()(ValueType::size_type i);    operator()(ValueType::size_type i);
468    
469      ESCRIPT_DLL_API
470    ValueType::const_reference    ValueType::const_reference
471    operator()(ValueType::size_type i) const;    operator()(ValueType::size_type i) const;
472    
# Line 435  class DataArrayView { Line 475  class DataArrayView {
475      Return a reference to the element at position i,j in the view.      Return a reference to the element at position i,j in the view.
476      Assumes a rank 2 view.      Assumes a rank 2 view.
477    */    */
478      ESCRIPT_DLL_API
479    ValueType::reference    ValueType::reference
480    operator()(ValueType::size_type i,    operator()(ValueType::size_type i,
481               ValueType::size_type j);               ValueType::size_type j);
482    
483      ESCRIPT_DLL_API
484    ValueType::const_reference    ValueType::const_reference
485    operator()(ValueType::size_type i,    operator()(ValueType::size_type i,
486               ValueType::size_type j) const;               ValueType::size_type j) const;
# Line 448  class DataArrayView { Line 490  class DataArrayView {
490      Return a reference to the element at position i,j,k in the view.      Return a reference to the element at position i,j,k in the view.
491      Assumes a rank 3 view.      Assumes a rank 3 view.
492    */    */
493      ESCRIPT_DLL_API
494    ValueType::reference    ValueType::reference
495    operator()(ValueType::size_type i,    operator()(ValueType::size_type i,
496               ValueType::size_type j,               ValueType::size_type j,
497               ValueType::size_type k);               ValueType::size_type k);
498    
499      ESCRIPT_DLL_API
500    ValueType::const_reference    ValueType::const_reference
501    operator()(ValueType::size_type i,    operator()(ValueType::size_type i,
502               ValueType::size_type j,               ValueType::size_type j,
# Line 463  class DataArrayView { Line 507  class DataArrayView {
507      Return a reference to the element at position i,j,k,m in the view.      Return a reference to the element at position i,j,k,m in the view.
508      Assumes a rank 4 view.      Assumes a rank 4 view.
509    */    */
510      ESCRIPT_DLL_API
511    ValueType::reference    ValueType::reference
512    operator()(ValueType::size_type i,    operator()(ValueType::size_type i,
513               ValueType::size_type j,               ValueType::size_type j,
514               ValueType::size_type k,               ValueType::size_type k,
515               ValueType::size_type m);               ValueType::size_type m);
516    
517      ESCRIPT_DLL_API
518    ValueType::const_reference    ValueType::const_reference
519    operator()(ValueType::size_type i,    operator()(ValueType::size_type i,
520               ValueType::size_type j,               ValueType::size_type j,
# Line 483  class DataArrayView { Line 529  class DataArrayView {
529       \param region - Input -       \param region - Input -
530                         Slice region.                         Slice region.
531    */    */
532      ESCRIPT_DLL_API
533    static    static
534    ShapeType    ShapeType
535    getResultSliceShape(const RegionType& region);    getResultSliceShape(const RegionType& region);
# Line 541  class DataArrayView { Line 588  class DataArrayView {
588           getSliceRegion(:1,0:2)      => < <0,1> <0,2> <0,6> >           getSliceRegion(:1,0:2)      => < <0,1> <0,2> <0,6> >
589    
590    */    */
591      ESCRIPT_DLL_API
592    RegionType    RegionType
593    getSliceRegion(const boost::python::object& key) const;    getSliceRegion(const boost::python::object& key) const;
594    
# Line 554  class DataArrayView { Line 602  class DataArrayView {
602       \param region - Input -       \param region - Input -
603                        Region in other view to copy data from.                        Region in other view to copy data from.
604    */    */
605      ESCRIPT_DLL_API
606    void    void
607    copySlice(const DataArrayView& other,    copySlice(const DataArrayView& other,
608              const RegionLoopRangeType& region);              const RegionLoopRangeType& region);
# Line 572  class DataArrayView { Line 621  class DataArrayView {
621       \param region - Input -       \param region - Input -
622                        Region in other view to copy data from.                        Region in other view to copy data from.
623    */    */
624      ESCRIPT_DLL_API
625    void    void
626    copySlice(ValueType::size_type thisOffset,    copySlice(ValueType::size_type thisOffset,
627              const DataArrayView& other,              const DataArrayView& other,
# Line 588  class DataArrayView { Line 638  class DataArrayView {
638       \param region - Input -       \param region - Input -
639                    Region in this view to copy data to.                    Region in this view to copy data to.
640    */    */
641      ESCRIPT_DLL_API
642    void    void
643    copySliceFrom(const DataArrayView& other,    copySliceFrom(const DataArrayView& other,
644                  const RegionLoopRangeType& region);                  const RegionLoopRangeType& region);
# Line 606  class DataArrayView { Line 657  class DataArrayView {
657       \param region - Input -       \param region - Input -
658                      Region in this view to copy data to.                      Region in this view to copy data to.
659    */    */
660      ESCRIPT_DLL_API
661    void    void
662    copySliceFrom(ValueType::size_type thisOffset,    copySliceFrom(ValueType::size_type thisOffset,
663                  const DataArrayView& other,                  const DataArrayView& other,
# Line 624  class DataArrayView { Line 676  class DataArrayView {
676                    Operation to apply. Operation must be a pointer to a function.                    Operation to apply. Operation must be a pointer to a function.
677    */    */
678    template <class UnaryFunction>    template <class UnaryFunction>
679      ESCRIPT_DLL_API
680    void    void
681    unaryOp(UnaryFunction operation);    unaryOp(UnaryFunction operation);
682    
# Line 641  class DataArrayView { Line 694  class DataArrayView {
694                    Operation to apply. Must be a pointer to a function.                    Operation to apply. Must be a pointer to a function.
695    */    */
696    template <class UnaryFunction>    template <class UnaryFunction>
697      ESCRIPT_DLL_API
698    void    void
699    unaryOp(ValueType::size_type offset,    unaryOp(ValueType::size_type offset,
700            UnaryFunction operation);            UnaryFunction operation);
# Line 660  class DataArrayView { Line 714  class DataArrayView {
714                    Operation to apply. Must be a pointer to a function.                    Operation to apply. Must be a pointer to a function.
715    */    */
716    template <class BinaryFunction>    template <class BinaryFunction>
717      ESCRIPT_DLL_API
718    void    void
719    binaryOp(const DataArrayView& right,    binaryOp(const DataArrayView& right,
720             BinaryFunction operation);             BinaryFunction operation);
# Line 683  class DataArrayView { Line 738  class DataArrayView {
738                    Operation to apply. Must be a pointer to a function.                    Operation to apply. Must be a pointer to a function.
739    */    */
740    template <class BinaryFunction>    template <class BinaryFunction>
741      ESCRIPT_DLL_API
742    void    void
743    binaryOp(ValueType::size_type leftOffset,    binaryOp(ValueType::size_type leftOffset,
744             const DataArrayView& right,             const DataArrayView& right,
# Line 704  class DataArrayView { Line 760  class DataArrayView {
760                    Operation to apply. Must be a pointer to a function.                    Operation to apply. Must be a pointer to a function.
761    */    */
762    template <class BinaryFunction>    template <class BinaryFunction>
763      ESCRIPT_DLL_API
764    void    void
765    binaryOp(double right,    binaryOp(double right,
766             BinaryFunction operation);             BinaryFunction operation);
# Line 725  class DataArrayView { Line 782  class DataArrayView {
782                    Operation to apply. Must be a pointer to a function.                    Operation to apply. Must be a pointer to a function.
783    */    */
784    template <class BinaryFunction>    template <class BinaryFunction>
785      ESCRIPT_DLL_API
786    void    void
787    binaryOp(ValueType::size_type offset,    binaryOp(ValueType::size_type offset,
788             double right,             double right,
# Line 743  class DataArrayView { Line 801  class DataArrayView {
801                    Operation to apply. Must be a pointer to a function.                    Operation to apply. Must be a pointer to a function.
802    */    */
803    template <class BinaryFunction>    template <class BinaryFunction>
804      ESCRIPT_DLL_API
805    double    double
806    reductionOp(BinaryFunction operation,    reductionOp(BinaryFunction operation,
807                double initial_value) const;                double initial_value) const;
# Line 762  class DataArrayView { Line 821  class DataArrayView {
821                    Operation to apply. Must be a pointer to a function.                    Operation to apply. Must be a pointer to a function.
822    */    */
823    template <class BinaryFunction>    template <class BinaryFunction>
824      ESCRIPT_DLL_API
825    double    double
826    reductionOp(ValueType::size_type offset,    reductionOp(ValueType::size_type offset,
827                BinaryFunction operation,                BinaryFunction operation,
# Line 780  class DataArrayView { Line 840  class DataArrayView {
840       \param right - Input - The right hand side.       \param right - Input - The right hand side.
841       \param result - Output - The result of the operation.       \param result - Output - The result of the operation.
842    */    */
843      ESCRIPT_DLL_API
844    static    static
845    void    void
846    matMult(const DataArrayView& left,    matMult(const DataArrayView& left,
# Line 792  class DataArrayView { Line 853  class DataArrayView {
853       of the given views.       of the given views.
854       This is purely a utility method and has no bearing on this view.       This is purely a utility method and has no bearing on this view.
855    */    */
856      ESCRIPT_DLL_API
857    static    static
858    ShapeType    ShapeType
859    determineResultShape(const DataArrayView& left,    determineResultShape(const DataArrayView& left,
# Line 806  class DataArrayView { Line 868  class DataArrayView {
868       \param ev - Output - The eigenvalues       \param ev - Output - The eigenvalues
869       \param inOffset - Input - offset into ev       \param inOffset - Input - offset into ev
870    */    */
871      ESCRIPT_DLL_API
872    static    static
873    inline    inline
874    void    void
# Line 862  class DataArrayView { Line 925  class DataArrayView {
925       \param VOffset - Input - offset into V       \param VOffset - Input - offset into V
926       \param tol - Input - eigenvalues with relative difference tol are treated as equal       \param tol - Input - eigenvalues with relative difference tol are treated as equal
927    */    */
928      ESCRIPT_DLL_API
929    static    static
930    inline    inline
931    void    void
# Line 957  class DataArrayView { Line 1021  class DataArrayView {
1021    
1022  };  };
1023    
1024  bool operator==(const DataArrayView& left, const DataArrayView& right);  ESCRIPT_DLL_API bool operator==(const DataArrayView& left, const DataArrayView& right);
1025  bool operator!=(const DataArrayView& left, const DataArrayView& right);  ESCRIPT_DLL_API bool operator!=(const DataArrayView& left, const DataArrayView& right);
1026    
1027  /**  /**
1028    \brief    \brief

Legend:
Removed from v.682  
changed lines
  Added in v.757

  ViewVC Help
Powered by ViewVC 1.1.26