add comment header to include/array files
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
c055ef39da
commit
7487929bfc
12 changed files with 110 additions and 162 deletions
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/aindex.cc.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_aindex_cc_h__
|
||||
#define __cxz_aindex_cc_h__
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/aindex.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_aindex_h__
|
||||
#define __cxz_aindex_h__
|
||||
|
|
|
@ -1,6 +1,16 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/array.cc.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#include "array_base.cc.h"
|
||||
#include "marray.cc.h"
|
||||
#include "aindex.cc.h"
|
||||
#include "slice.cc.h"
|
||||
//#include "functional_array.cc.h"
|
||||
|
|
|
@ -1,8 +1,18 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/array.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#include "array_base.h"
|
||||
#include "marray.h"
|
||||
#include "aindex.h"
|
||||
#include "slice.h"
|
||||
//#include "functional_array.h"
|
||||
|
||||
#include "array.cc.h"
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/array_base.cc.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_array_base_cc_h__
|
||||
#define __cxz_array_base_cc_h__
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/array_base.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_array_base_h__
|
||||
#define __cxz_array_base_h__
|
||||
|
|
|
@ -1,99 +0,0 @@
|
|||
|
||||
#include "functional_array.h"
|
||||
|
||||
namespace CNORXZ
|
||||
{
|
||||
|
||||
|
||||
/****************************
|
||||
* FunctionalArray *
|
||||
****************************/
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
FunctionalArray<T,Function,SRanges...>::FunctionalArray(const std::shared_ptr<SRanges>&... ranges,
|
||||
const std::shared_ptr<Function>& func) :
|
||||
ArrayBase<T,SRanges...>(ranges...), mFunc(func) {}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
FunctionalArray<T,Function,SRanges...>::FunctionalArray(const std::shared_ptr<SRanges>&... ranges) :
|
||||
ArrayBase<T,SRanges...>(ranges...) {}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
FunctionalArray<T,Function,SRanges...>::FunctionalArray(const typename CRange::Space& space) :
|
||||
ArrayBase<T,SRanges...>(space) {}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
FunctionalArray<T,Function,SRanges...>::FunctionalArray(const typename CRange::Space& space,
|
||||
const std::shared_ptr<Function>& func) :
|
||||
ArrayBase<T,SRanges...>(space), mFunc(func) {}
|
||||
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
const T& FunctionalArray<T,Function,SRanges...>::operator[](const IndexType& i) const
|
||||
{
|
||||
if constexpr(Function::FISSTATIC){
|
||||
mVal = Function::apply(i.meta());
|
||||
}
|
||||
else {
|
||||
mVal = (*mFunc)(i.meta());
|
||||
}
|
||||
return mVal;
|
||||
}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
const T& FunctionalArray<T,Function,SRanges...>::at(const typename CRange::IndexType::MetaType& meta) const
|
||||
{
|
||||
if constexpr(Function::FISSTATIC){
|
||||
mVal = Function::apply(meta);
|
||||
}
|
||||
else {
|
||||
mVal = (*mFunc)(meta);
|
||||
}
|
||||
return mVal;
|
||||
}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
const T* FunctionalArray<T,Function,SRanges...>::data() const
|
||||
{
|
||||
return &mVal;
|
||||
}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
bool FunctionalArray<T,Function,SRanges...>::isConst() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
bool FunctionalArray<T,Function,SRanges...>::isSlice() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
std::shared_ptr<ArrayBase<T,AnonymousRange> > FunctionalArray<T,Function,SRanges...>::anonymous(bool slice) const
|
||||
{
|
||||
assert(0); // think about it carefully
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
ConstOperationRoot<T,SRanges...> FunctionalArray<T,Function,SRanges...>::
|
||||
operator()(const std::shared_ptr<typename SRanges::IndexType>&... inds) const
|
||||
{
|
||||
if(not mMaPtr){
|
||||
mMaPtr = std::make_shared<MAType>( MAB::mRange->space() );
|
||||
(*mMaPtr)(inds...) = exec(inds...);
|
||||
}
|
||||
return ConstOperationRoot<T,SRanges...>( *mMaPtr, inds... );
|
||||
}
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
auto FunctionalArray<T,Function,SRanges...>::
|
||||
exec(const std::shared_ptr<typename SRanges::IndexType>&... inds) const
|
||||
-> Operation<T,Function,MetaOperationRoot<SRanges>...>
|
||||
{
|
||||
return mkOperation( mFunc, MetaOperationRoot<SRanges>( inds ) ... );
|
||||
}
|
||||
|
||||
} // namespace CNORXZ
|
|
@ -1,61 +0,0 @@
|
|||
|
||||
#ifndef __cxz_functional_array__
|
||||
#define __cxz_functional_array__
|
||||
|
||||
#include "cxz_array_base.h"
|
||||
#include "slice.h"
|
||||
|
||||
namespace CNORXZ
|
||||
{
|
||||
|
||||
template <typename T, class Function, class... SRanges>
|
||||
class FunctionalArray : public ArrayBase<T,SRanges...>
|
||||
{
|
||||
public:
|
||||
|
||||
typedef ContainerRange<SRanges...> CRange;
|
||||
typedef ArrayBase<T,SRanges...> MAB;
|
||||
typedef ConstContainerIndex<T,typename SRanges::IndexType...> IndexType;
|
||||
typedef Array<T,SRanges...> MAType;
|
||||
typedef T value_type;
|
||||
|
||||
private:
|
||||
mutable T mVal;
|
||||
std::shared_ptr<Function> mFunc;
|
||||
|
||||
mutable std::shared_ptr<MAType> mMaPtr;
|
||||
|
||||
public:
|
||||
|
||||
DEFAULT_MEMBERS(FunctionalArray);
|
||||
FunctionalArray(const std::shared_ptr<SRanges>&... ranges, const std::shared_ptr<Function>& func);
|
||||
FunctionalArray(const std::shared_ptr<SRanges>&... ranges);
|
||||
FunctionalArray(const typename CRange::Space& space);
|
||||
FunctionalArray(const typename CRange::Space& space, const std::shared_ptr<Function>& func);
|
||||
|
||||
virtual const T& operator[](const IndexType& i) const override;
|
||||
virtual const T& at(const typename CRange::IndexType::MetaType& meta) const override;
|
||||
virtual const T* data() const override;
|
||||
|
||||
virtual bool isConst() const override;
|
||||
virtual bool isSlice() const override;
|
||||
|
||||
virtual std::shared_ptr<ArrayBase<T,AnonymousRange> > anonymous(bool slice = false) const override;
|
||||
|
||||
auto exec(const std::shared_ptr<typename SRanges::IndexType>&... inds) const
|
||||
-> Operation<T,Function,MetaOperationRoot<SRanges>...>;
|
||||
|
||||
virtual ConstOperationRoot<T,SRanges...>
|
||||
operator()(const std::shared_ptr<typename SRanges::IndexType>&... inds) const override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
} // namespace CNORXZ
|
||||
|
||||
/* ========================= *
|
||||
* --- TEMPLATE CODE --- *
|
||||
* ========================= */
|
||||
|
||||
|
||||
#endif
|
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/marray.cc.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_marray_cc_h__
|
||||
#define __cxz_marray_cc_h__
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/marray.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_marray_h__
|
||||
#define __cxz_marray_h__
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/slice.cc.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_slice_cc_h__
|
||||
#define __cxz_slice_cc_h__
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
// -*- C++ -*-
|
||||
/**
|
||||
|
||||
@file include/array/slice.h
|
||||
@brief ...
|
||||
|
||||
|
||||
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
|
||||
Mail: chizeta@f3l.de
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __cxz_slice_h__
|
||||
#define __cxz_slice_h__
|
||||
|
|
Loading…
Reference in a new issue