LSSTApplications  1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
LSSTDataManagementBasePackage
Public Member Functions | Private Attributes | List of all members
ndarray::detail::SimpleInitializer< N > Class Template Reference

#include <initialization.h>

Inheritance diagram for ndarray::detail::SimpleInitializer< N >:
ndarray::detail::Initializer< N, SimpleInitializer< N > >

Public Member Functions

template<typename Target >
Target apply () const
 
 SimpleInitializer (Vector< int, N > const &shape)
 
- Public Member Functions inherited from ndarray::detail::Initializer< N, SimpleInitializer< N > >
 operator Array< T, N, C > () const
 
 operator ArrayRef< T, N, C > () const
 

Private Attributes

Vector< int, N > _shape
 

Detailed Description

template<int N>
class ndarray::detail::SimpleInitializer< N >

Definition at line 55 of file initialization.h.

Constructor & Destructor Documentation

template<int N>
ndarray::detail::SimpleInitializer< N >::SimpleInitializer ( Vector< int, N > const &  shape)
inlineexplicit

Definition at line 69 of file initialization.h.

69 : _shape(shape) {}

Member Function Documentation

template<int N>
template<typename Target >
Target ndarray::detail::SimpleInitializer< N >::apply ( ) const
inline

Definition at line 59 of file initialization.h.

59  {
60  typedef detail::ArrayAccess< Target > Access;
61  typedef typename Access::Core Core;
62  typedef typename Access::Element Element;
63  DataOrderEnum order = (ExpressionTraits< Target >::RMC::value < 0) ? COLUMN_MAJOR : ROW_MAJOR;
64  int total = _shape.product();
65  std::pair<Manager::Ptr,Element*> p = SimpleManager<Element>::allocate(total);
66  return Access::construct(p.second, Core::create(_shape, order, p.first));
67  }
static Ptr create(Vector< int, M > const &shape, Vector< int, M > const &strides, Manager::Ptr const &manager=Manager::Ptr())
Create a Core::Ptr with the given shape, strides, and manager.
Definition: Core.h:68
T product() const
Return the product of all elements.
Definition: Vector.h:216
Vector< T, M > first() const
Create a new Vector from the first M elements of this.
Definition: Vector.h:159
DataOrderEnum
An enumeration for stride computation.
Definition: ndarray_fwd.h:60
static std::pair< Manager::Ptr, T * > allocate(int size)
Definition: Manager.h:71

Member Data Documentation

template<int N>
Vector<int,N> ndarray::detail::SimpleInitializer< N >::_shape
private

Definition at line 72 of file initialization.h.


The documentation for this class was generated from the following file: