dev #3

Merged
chizeta merged 9 commits from dev into main 2024-02-04 00:49:58 +01:00
40 changed files with 279 additions and 305 deletions
Showing only changes of commit 8a0fdf7a7c - Show all commits

View file

@ -2,10 +2,9 @@
/**
@file include/array/aindex.cc.h
@brief ...
@brief Array index template implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/array/aindex.h
@brief ...
@brief Array index declaration.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/array/array_base.cc.h
@brief ...
@brief Array base class template implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/array/array_base.h
@brief ...
@brief Array base class declarations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/array/marray.cc.h
@brief ...
@brief MArray implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/array/marray.h
@brief ...
@brief MArray declarations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/array/slice.cc.h
@brief ...
@brief Slice implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/array/slice.h
@brief ...
@brief Slice declarations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -84,7 +84,7 @@ namespace CNORXZ
| library types |
+===================*/
/***
/*
Naming Prefixes:
D = Y = Dynamic
V = X = Virtual
@ -100,7 +100,7 @@ namespace CNORXZ
A = (const) Array
B = (mutable) Array
F = Functional, Map,...
***/
*/
// default template parameter
class None {};

View file

@ -2,10 +2,9 @@
/**
@file include/memory/memcount.h
@brief ...
@brief MemCount declaration.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/memory/memory.cc.h
@brief ...
@brief Memory template implementations main header.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/memory/memory.h
@brief ...
@brief Memory main heade.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -16,9 +16,9 @@
namespace CNORXZ
{
/************************************
* standard operatrions (unary) *
************************************/
/*==================================+
| standard operatrions (unary) |
+==================================*/
template <class Op>
constexpr decltype(auto) minus(const COpInterface<Op>& op)
@ -26,9 +26,9 @@ namespace CNORXZ
return operation( [](const auto& a) { return -a; }, op.THIS() );
}
/*************************************
* standard operatrions (binary) *
*************************************/
/*===================================+
| standard operatrions (binary) |
+===================================*/
template <class Op1, class Op2>
constexpr decltype(auto) plus(const COpInterface<Op1>& op1, const COpInterface<Op2>& op2)
@ -65,9 +65,9 @@ namespace CNORXZ
op1.THIS(), op2.THIS() );
}
/*****************************************
* operators for standard operations *
*****************************************/
/*=======================================+
| operators for standard operations |
+=======================================*/
template <class Op>
constexpr decltype(auto) operator-(const COpInterface<Op>& op)

View file

@ -16,9 +16,9 @@
namespace CNORXZ
{
/***********************
* PlusCC / PlusCX *
***********************/
/*=====================+
| PlusCC / PlusCX |
+=====================*/
inline decltype(auto)
PlusCC<Double,Double,AVX::ND>::eval(const Consecutive<Double,AVX::ND>& a,
@ -80,9 +80,9 @@ namespace CNORXZ
return o;
}
/*************************
* MinusCC / MinusCX *
*************************/
/*=======================+
| MinusCC / MinusCX |
+=======================*/
inline decltype(auto)
MinusCC<Double,Double,AVX::ND>::eval(const Consecutive<Double,AVX::ND>& a,
@ -144,9 +144,9 @@ namespace CNORXZ
return o;
}
/***********************************
* MultipliesCC / MultipliesCX *
***********************************/
/*=================================+
| MultipliesCC / MultipliesCX |
+=================================*/
inline decltype(auto)
MultipliesCC<Double,Double,AVX::ND>::eval(const Consecutive<Double,AVX::ND>& a,
@ -210,9 +210,9 @@ namespace CNORXZ
}
/*****************************
* DividesCC / DividesCX *
*****************************/
/*===========================+
| DividesCC / DividesCX |
+===========================*/
inline decltype(auto)
DividesCC<Double,Double,AVX::ND>::eval(const Consecutive<Double,AVX::ND>& a,

View file

@ -120,9 +120,9 @@ namespace CNORXZ
return consecFuncAI<F,Dst,Args...>(f, dst, args..., std::make_index_sequence<N>{});
}
/******************************
* basic operations: plus *
******************************/
/*============================+
| basic operations: plus |
+============================*/
template <typename T, typename U, SizeT N>
constexpr decltype(auto)
@ -156,9 +156,9 @@ namespace CNORXZ
return consecFuncA<N>( [](auto& x, const auto& y) { return x += y; }, o, a );
}
/*******************************
* basic operations: minus *
*******************************/
/*=============================+
| basic operations: minus |
+=============================*/
template <typename T, typename U, SizeT N>
constexpr decltype(auto) MinusCC<T,U,N>::eval(const Consecutive<T,N>& a, const Consecutive<U,N>& b)
@ -190,9 +190,9 @@ namespace CNORXZ
return consecFuncA<N>( [](auto& x, const auto& y) { return x -= y; }, o, a );
}
/***********************************
* basic operations: muliplies *
***********************************/
/*=================================+
| basic operations: muliplies |
+=================================*/
template <typename T, typename U, SizeT N>
constexpr decltype(auto) MultipliesCC<T,U,N>::eval(const Consecutive<T,N>& a, const Consecutive<U,N>& b)
@ -224,9 +224,9 @@ namespace CNORXZ
return consecFuncA<N>( [](const auto& x, const auto& y) { return x *= y; }, o, a );
}
/*********************************
* basic operations: divides *
*********************************/
/*===============================+
| basic operations: divides |
+===============================*/
template <typename T, typename U, SizeT N>
constexpr decltype(auto) DividesCC<T,U,N>::eval(const Consecutive<T,N>& a, const Consecutive<U,N>& b)

View file

@ -43,9 +43,9 @@ namespace CNORXZ
template <typename T, SizeT N>
struct consecutive_size<Consecutive<T,N>> { static constexpr SizeT value = N; };
/****************************************
* consecutive generating functions *
****************************************/
/*======================================+
| consecutive generating functions |
+======================================*/
template <typename T, class EPosT, SizeT... Is>
inline decltype(auto) vregi(const T* d, const EPosT& pos, std::index_sequence<Is...> is);
@ -56,9 +56,9 @@ namespace CNORXZ
template <typename T, class EPosT>
inline decltype(auto) vreg(T* d, const EPosT& pos);
/******************
* ConsecFunc *
******************/
/*================+
| ConsecFunc |
+================*/
template <SizeT I, typename T>
constexpr decltype(auto) consecGet(const T& a);
@ -86,9 +86,9 @@ namespace CNORXZ
template <SizeT N, class F, typename Dst, typename... Args>
constexpr Dst& consecFuncA(const F& f, Dst& dst, const Args&... args);
/******************************
* basic operations: plus *
******************************/
/*============================+
| basic operations: plus |
+============================*/
template <typename T, typename U, SizeT N>
struct PlusCC
@ -133,9 +133,9 @@ namespace CNORXZ
constexpr Consecutive<T,N>& operator+=(Consecutive<T,N>& o, const U& a)
{ return PlusCX<T,U,N>::aeval(o,a); }
/*******************************
* basic operations: minus *
*******************************/
/*=============================+
| basic operations: minus |
+=============================*/
template <typename T, typename U, SizeT N>
struct MinusCC
@ -180,9 +180,9 @@ namespace CNORXZ
constexpr Consecutive<T,N>& operator-=(Consecutive<T,N>& o, const U& a)
{ return MinusCX<T,U,N>::eval(o,a); }
/***********************************
* basic operations: muliplies *
***********************************/
/*=================================+
| basic operations: muliplies |
+=================================*/
template <typename T, typename U, SizeT N>
struct MultipliesCC
@ -227,9 +227,9 @@ namespace CNORXZ
constexpr Consecutive<T,N>& operator*=(Consecutive<T,N>& o, const U& a)
{ return MultipliesCX<T,U,N>::eval(o,a); }
/*********************************
* basic operations: divides *
*********************************/
/*===============================+
| basic operations: divides |
+===============================*/
template <typename T, typename U, SizeT N>
struct DividesCC

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/crange.cc.h
@brief ...
@brief CRange and CIndex template implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,8 +2,7 @@
/**
@file include/ranges/dindex.cc.h
@brief ...
@brief Dynamic index template implementations.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de

View file

@ -2,7 +2,7 @@
/**
@file include/ranges/dindex.h
@brief DIndex declaration.
@brief Dynamic index declaration.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/eindex.cc.h
@brief ...
@brief Extension index implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,8 +2,7 @@
/**
@file include/ranges/eindex.h
@brief ...
@brief Extension index declaration.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/index_base.cc.h
@brief ...
@brief Index base template implementation.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/
@ -17,9 +16,9 @@
namespace CNORXZ
{
/**********************
* IndexInterface *
**********************/
/*====================+
| IndexInterface |
+====================*/
template <class I, typename MetaType>
IndexInterface<I,MetaType>::IndexInterface()
@ -113,9 +112,9 @@ namespace CNORXZ
}
/****************************
* Non-member functions *
****************************/
/*==========================+
| Non-member functions |
+==========================*/
template <class I, typename MetaType>
IndexPtr<I,MetaType>& operator++(const IndexPtr<I,MetaType>& i)

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/index_base.h
@brief ...
@brief Index base declaration.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/index_format.cc.h
@brief ...
@brief Index formats implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/
@ -17,9 +16,9 @@
namespace CNORXZ
{
/***************
* MFormat *
***************/
/*=============+
| MFormat |
+=============*/
template <SizeT N>
constexpr MFormat<N>::MFormat(const Arr<UPos,N>& b) :
@ -61,9 +60,9 @@ namespace CNORXZ
}
/****************
* GMFormat *
****************/
/*==============+
| GMFormat |
+==============*/
template <class... PosT>
constexpr GMFormat<PosT...>::GMFormat(const Tuple<PosT...>& b) :
@ -115,9 +114,9 @@ namespace CNORXZ
return GMFormat(std::move(std::make_tuple(ps...)));
}
/***************
* YFormat *
***************/
/*=============+
| YFormat |
+=============*/
template <class FormatT>
YFormat::YFormat(const FormatT& f) : mB(f.size())

View file

@ -2,8 +2,7 @@
/**
@file include/ranges/index_mul.cc.h
@brief ...
@brief Index multiplication template implementation.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
@ -18,9 +17,9 @@
namespace CNORXZ
{
/*********************
* MIndexSptrMul *
*********************/
/*===================+
| MIndexSptrMul |
+===================*/
template <class BlockT, class... Indices, class I, SizeT... Is>
decltype(auto) MIndexSptrMul::evalMX(const Sptr<GMIndex<BlockT,Indices...>>& a,
@ -52,9 +51,9 @@ namespace CNORXZ
}
/*****************
* operator* *
*****************/
/*===============+
| operator* |
+===============*/
template <class I1, typename Meta1, class I2, typename Meta2>
inline decltype(auto) operator*(const IndexInterface<I1,Meta1>& a,
@ -122,9 +121,9 @@ namespace CNORXZ
return a.mul(b);
}
/***************
* iptrMul *
***************/
/*=============+
| iptrMul |
+=============*/
template <class I1, class I2>
decltype(auto) iptrMul(const Sptr<I1>& a, const Sptr<I2>& b)

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/index_pack.cc.h
@brief ...
@brief Index pack template implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/
@ -17,9 +16,9 @@
namespace CNORXZ
{
/*************
* SPack *
*************/
/*===========+
| SPack |
+===========*/
template <class... Indices>
constexpr SPack<Indices...>::SPack(const Sptr<Indices>&... is) :
@ -96,9 +95,9 @@ namespace CNORXZ
return lex();
}
/**************************
* SPack (non-member) *
**************************/
/*========================+
| SPack (non-member) |
+========================*/
template <class... Indices>
constexpr decltype(auto) spack(const Indices&... inds)
@ -114,9 +113,9 @@ namespace CNORXZ
return SPack<Indices...>( inds... );
}
/*************
* DPack *
*************/
/*===========+
| DPack |
+===========*/
template <class... Indices>
DPack::DPack(const SPack<Indices...>& p) :
@ -127,9 +126,9 @@ namespace CNORXZ
{}
/**************************
* DPack (non-member) *
**************************/
/*========================+
| DPack (non-member) |
+========================*/
template <class... Indices>
DPack dpack(const Indices&... inds)

View file

@ -2,8 +2,7 @@
/**
@file include/ranges/lindex.cc.h
@brief ...
@brief LIndex implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/range_base.cc.h
@brief ...
@brief RangeBase template implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/ranges.cc.h
@brief ...
@brief Ranges template implementation main header
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/srange.cc.h
@brief ...
@brief SRange, SRangeFactory and SIndex implementation.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/
@ -18,9 +17,9 @@
namespace CNORXZ
{
/**************
* SIndex *
**************/
/*============+
| SIndex |
+============*/
template <typename MetaT, SizeT S>
SIndex<MetaT,S>::SIndex(const RangePtr& range, SizeT pos) :
@ -213,9 +212,9 @@ namespace CNORXZ
}
/*********************
* SRangeFactory *
*********************/
/*===================+
| SRangeFactory |
+===================*/
template <typename MetaType, SizeT S>
SRangeFactory<MetaType,S>::SRangeFactory(const Arr<MetaType,S>& space) :
@ -248,9 +247,9 @@ namespace CNORXZ
}
}
/**************
* SRange *
**************/
/*============+
| SRange |
+============*/
template <typename MetaType, SizeT S>
SRange<MetaType,S>::SRange(const Arr<MetaType,S>& space) :
@ -338,9 +337,9 @@ namespace CNORXZ
return Vector<Uuid> { this->id() };
}
/*******************
* Range Casts *
*******************/
/*=================+
| Range Casts |
+=================*/
template <typename MetaType, SizeT S>
Sptr<SRange<MetaType,S>> RangeCast<SRange<MetaType,S>>::func(const RangePtr& r)

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/urange.cc.h
@brief ...
@brief URange, URangeFactory and UIndex implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/
@ -25,9 +24,9 @@
namespace CNORXZ
{
/*****************
* UIndex *
*****************/
/*===============+
| UIndex |
+===============*/
template <typename MetaT>
UIndex<MetaT>::UIndex(const RangePtr& range, SizeT pos) :
@ -222,9 +221,9 @@ namespace CNORXZ
return iptrMul(a, b);
}
/**********************
* URangeFactory *
**********************/
/*====================+
| URangeFactory |
+====================*/
template <typename MetaT>
URangeFactory<MetaT>::URangeFactory(const Vector<MetaT>& space) :
@ -257,9 +256,9 @@ namespace CNORXZ
}
}
/***************
* URange *
***************/
/*=============+
| URange |
+=============*/
template <typename MetaT>
URange<MetaT>::URange(const Vector<MetaT>& space) :
@ -350,9 +349,9 @@ namespace CNORXZ
return Vector<Uuid> { this->id() };
}
/*******************
* Range Casts *
*******************/
/*=================+
| Range Casts |
+=================*/
template <typename MetaT>
struct URangeCast

View file

@ -2,10 +2,9 @@
/**
@file include/ranges/xindex.cc.h
@brief ...
@brief XIndexBase and XIndex template implementations.
Copyright (c) 2022 Christian Zimmermann. All rights reserved.
Copyright (c) 2024 Christian Zimmermann. All rights reserved.
Mail: chizeta@f3l.de
**/
@ -18,9 +17,9 @@
namespace CNORXZ
{
/**************
* XIndex *
**************/
/*============+
| XIndex |
+============*/
template <class Index, typename Meta>
XIndex<Index,Meta>::XIndex(const IndexPtr<Index,Meta>& i) :

View file

@ -19,9 +19,9 @@
namespace CNORXZ
{
/***********
* For *
***********/
/*=========+
| For |
+=========*/
template <SizeT L, class Xpr, class F>
constexpr For<L,Xpr,F>::For(SizeT size, const IndexId<L>& id, const Xpr& xpr, F&& f) :
@ -83,9 +83,9 @@ namespace CNORXZ
return mXpr.rootSteps(id);
}
/************************
* For (non-member) *
************************/
/*======================+
| For (non-member) |
+======================*/
template <SizeT L, class Xpr, class F>
constexpr decltype(auto) mkFor(SizeT size, const IndexId<L>& id, const Xpr& xpr, F&& f)
@ -99,9 +99,9 @@ namespace CNORXZ
return For<L,Xpr>(size, id, xpr, NoF {});
}
/************
* SFor *
************/
/*==========+
| SFor |
+==========*/
template <SizeT N, SizeT L, class Xpr, class F>
constexpr SFor<N,L,Xpr,F>::SFor(const IndexId<L>& id, const Xpr& xpr, F&& f) :
@ -203,9 +203,9 @@ namespace CNORXZ
return;
}
/*************************
* SFor (non-member) *
*************************/
/*=======================+
| SFor (non-member) |
+=======================*/
template <SizeT N, SizeT L, class Xpr, class F>
constexpr decltype(auto) mkSFor(const IndexId<L>& id, const Xpr& xpr, F&& f)
@ -219,9 +219,9 @@ namespace CNORXZ
return SFor<N,L,Xpr>(id, xpr, NoF {});
}
/************
* PFor *
************/
/*==========+
| PFor |
+==========*/
template <SizeT L1, SizeT L2, class Xpr, class F>
constexpr PFor<L1,L2,Xpr,F>::PFor(SizeT size, const IndexId<L1>& id1, const IndexId<L2>& id2,
@ -291,9 +291,9 @@ namespace CNORXZ
return mXpr.rootSteps(id);
}
/*************************
* PFor (non-member) *
*************************/
/*=======================+
| PFor (non-member) |
+=======================*/
template <SizeT L1, SizeT L2, class Xpr, class F>
constexpr decltype(auto) mkPFor(SizeT size, const IndexId<L1>& id1, const IndexId<L2>& id2,
@ -309,9 +309,9 @@ namespace CNORXZ
return PFor<L1,L2,Xpr>(size, id1, id2, xpr, NoF {});
}
/************
* TFor *
************/
/*==========+
| TFor |
+==========*/
template <SizeT L, class Xpr, class F>
constexpr TFor<L,Xpr,F>::TFor(SizeT size, const IndexId<L>& id, const Xpr& xpr, F&& f) :
@ -399,9 +399,9 @@ namespace CNORXZ
}
/************
* EFor *
************/
/*==========+
| EFor |
+==========*/
template <SizeT N, SizeT L, class Xpr, class F>
constexpr EFor<N,L,Xpr,F>::EFor(const IndexId<L>& id, const Xpr& xpr, F&& f) :

View file

@ -18,9 +18,9 @@
namespace CNORXZ
{
/************
* SPos *
************/
/*==========+
| SPos |
+==========*/
template <SizeT N>
constexpr SizeT SPos<N>::size() const
@ -116,9 +116,9 @@ namespace CNORXZ
return val();
}
/************
* UPos *
************/
/*==========+
| UPos |
+==========*/
constexpr UPos::UPos(SizeT ext) : mExt(ext) {}
@ -183,9 +183,9 @@ namespace CNORXZ
return val();
}
/************
* FPos *
************/
/*==========+
| FPos |
+==========*/
inline FPos::FPos(SizeT ext, const SizeT* map) : mExt(ext), mMap(map) {}
@ -234,9 +234,9 @@ namespace CNORXZ
return val();
}
/*************
* SFPos *
*************/
/*===========+
| SFPos |
+===========*/
template <SizeT N, SizeT... Ms>
Arr<SizeT,sizeof...(Ms)> SFPos<N,Ms...>::sMs = { Ms... };
@ -320,9 +320,9 @@ namespace CNORXZ
return val();
}
/************
* MPos *
************/
/*==========+
| MPos |
+==========*/
template <class BPosT, class NPosT>
constexpr MPos<BPosT,NPosT>::MPos()
@ -411,9 +411,9 @@ namespace CNORXZ
return extend(a);
}
/************
* DPos *
************/
/*==========+
| DPos |
+==========*/
inline DPos::DPos(Uptr<VPosBase>&& a) :
ObjHandle<VPosBase>(std::forward<Uptr<VPosBase>>(a))
@ -516,9 +516,9 @@ namespace CNORXZ
return val();
}
/***************
* DPosRef *
***************/
/*=============+
| DPosRef |
+=============*/
inline DPosRef::DPosRef(const VPosBase* p) : mP(p) {}
@ -597,9 +597,9 @@ namespace CNORXZ
return val();
}
/************
* EPos *
************/
/*==========+
| EPos |
+==========*/
template <class BPosT, class... OPosTs>
constexpr EPos<BPosT,OPosTs...>::EPos(const BPosT& b, const OPosTs&... os) :
@ -689,9 +689,9 @@ namespace CNORXZ
return OEPosT(BPosT::next(), std::get<Is>(mP).next()...);
}
/*********************************
* Traits and Helper-Classes *
*********************************/
/*===============================+
| Traits and Helper-Classes |
+===============================*/
template <class BPosT, class OPosT, SizeT N>
decltype(auto) MkEPos<BPosT,OPosT,N>::mk(const BPosT& a, const OPosT& b)

View file

@ -306,9 +306,9 @@ namespace CNORXZ
constexpr decltype(auto) get() const;
};
/*********************************
* Traits and Helper-Classes *
*********************************/
/*===============================+
| Traits and Helper-Classes |
+===============================*/
template <class T>
struct is_pos_type { CXZ_CVAL_FALSE; };
@ -380,9 +380,9 @@ namespace CNORXZ
template <class BPosT, class OPosT, SizeT... Is>
decltype(auto) mkiEPos(const BPosT& a, const OPosT& b, std::index_sequence<Is...> is);
/**************************************************
* Traits and Helper-Classes: Specializations *
**************************************************/
/*================================================+
| Traits and Helper-Classes: Specializations |
+================================================*/
template <SizeT N> struct is_pos_type<SPos<N>> { CXZ_CVAL_TRUE; };
template <SizeT N> struct is_scalar_pos_type<SPos<N>> { CXZ_CVAL_TRUE; };

View file

@ -17,9 +17,9 @@
namespace CNORXZ
{
/************
* VPos *
************/
/*==========+
| VPos |
+==========*/
template <class PosT>
VPos<PosT>::VPos(const PosT& a) :
@ -77,9 +77,9 @@ namespace CNORXZ
return std::make_unique<VPos<OPosT>>( (*this)(UPos(a->vval())) );
}
/******************
* VPos<MPos> *
******************/
/*================+
| VPos<MPos> |
+================*/
template <class PosT1, class PosT2>
VPos<MPos<PosT1,PosT2>>::VPos(const VPos& a) :
@ -168,9 +168,9 @@ namespace CNORXZ
return std::make_unique<VPos<OPosT>>( (*this)(UPos(a->vval())) );
}
/***************
* VPosRef *
***************/
/*=============+
| VPosRef |
+=============*/
template <class PosT>
VPosRef<PosT>::VPosRef(const PosT* c) :
@ -228,9 +228,9 @@ namespace CNORXZ
return std::make_unique<VPos<OPosT>>( (*mC)(UPos(a->vval())) );
}
/*********************
* VPosRef<MPos> *
*********************/
/*===================+
| VPosRef<MPos> |
+===================*/
template <class PosT1, class PosT2>
VPosRef<MPos<PosT1,PosT2>>::VPosRef(const MPos<PosT1,PosT2>* c) :
@ -298,9 +298,9 @@ namespace CNORXZ
return std::make_unique<VPos<OPosT>>( (*mC)(UPos(a->vval())) );
}
/*******************
* PosFromVPos *
*******************/
/*=================+
| PosFromVPos |
+=================*/
template <class PosT>
inline decltype(auto) PosFromVPos<PosT>::make(const VPosBase* a)

View file

@ -17,9 +17,9 @@
namespace CNORXZ
{
/************
* VXpr *
************/
/*==========+
| VXpr |
+==========*/
template <typename T, class Xpr>
VXpr<T,Xpr>::VXpr(const XprInterface<Xpr>& a) :
@ -50,9 +50,9 @@ namespace CNORXZ
return DPos(this->rootSteps(id));
}
/************
* DXpr *
************/
/*==========+
| DXpr |
+==========*/
template <typename T>
template <class Xpr>

View file

@ -15,9 +15,9 @@
namespace CNORXZ
{
/*************************
* RangeFactoryBase *
*************************/
/*=======================+
| RangeFactoryBase |
+=======================*/
Map<SizeT,Map<Vector<Uuid>,RangePtr>> RangeFactoryBase::sCreated;
@ -56,9 +56,9 @@ namespace CNORXZ
return rx;
}
/******************
* RangeBase *
******************/
/*================+
| RangeBase |
+================*/
RangeBase::RangeBase()
{
@ -101,9 +101,9 @@ namespace CNORXZ
return this->index(this->size());
}
/****************************
* Non-member functions *
****************************/
/*==========================+
| Non-member functions |
+==========================*/
RangePack::operator RangePtr() const
{

View file

@ -14,9 +14,9 @@
namespace CNORXZ
{
/*************************
* YIndex (private) *
*************************/
/*=======================+
| YIndex (private) |
+=======================*/
inline DPack YIndex::mkIndices() const
{
@ -130,9 +130,9 @@ namespace CNORXZ
}
/***************
* YIndex *
***************/
/*=============+
| YIndex |
+=============*/
YIndex::YIndex(const YIndex& i) :
IndexInterface<YIndex,Vector<DType>>(i),
@ -517,9 +517,9 @@ namespace CNORXZ
}
/****************************
* non-member functions *
****************************/
/*==========================+
| non-member functions |
+==========================*/
YIndex yindex(const DPack& pack)
{
@ -541,9 +541,9 @@ namespace CNORXZ
return std::make_shared<YIndex>(is);
}
/**********************
* YRangeFactory *
**********************/
/*====================+
| YRangeFactory |
+====================*/
YRangeFactory::YRangeFactory(const Vector<RangePtr>& rvec) :
mRVec(rvec) {}
@ -570,9 +570,9 @@ namespace CNORXZ
}
}
/***************
* YRange *
***************/
/*=============+
| YRange |
+=============*/
RangePtr YRange::sub(SizeT i) const
{
@ -659,18 +659,18 @@ namespace CNORXZ
YRange::YRange(Vector<RangePtr>&& rvec) : mRVec(std::forward<Vector<RangePtr>>(rvec)) {}
/****************************
* non-member functions *
****************************/
/*==========================+
| non-member functions |
+==========================*/
RangePtr yrange(const Vector<RangePtr>& rs)
{
return YRangeFactory(rs).create();
}
/*******************
* Range Casts *
*******************/
/*=================+
| Range Casts |
+=================*/
Sptr<YRange> RangeCast<YRange>::func(const RangePtr& r)
{

View file

@ -22,9 +22,9 @@
namespace CNORXZ
{
/**************
* save *
**************/
/*============+
| save |
+============*/
template <class Archive>
void save(Archive& ar, const Uuid& id)
@ -61,9 +61,9 @@ namespace CNORXZ
ar(cereal::make_nvp("sub", mRVec));
}
/**************
* load *
**************/
/*============+
| load |
+============*/
template <class Archive>
void load(Archive& ar, Uuid& id)