Data types and type management

pni::type_id_t

Warning

doxygenenum: Cannot find enum “pni::type_id_t” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

Operators

Warning

doxygenfunction: Unable to resolve function “operator<<” with arguments (std::ostream&, const type_id_t&) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const Node &n)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_argument_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_help_request &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_option_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const column_info &ci)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const exception_record &rec)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const file_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const filter_not_available &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const image_info &i)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const index_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const invalid_object_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const io_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const iterator_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const key_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const link_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const memory_allocation_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const memory_not_allocated_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const not_implemented_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const object_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const parser_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const range_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const shape_mismatch_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const size_mismatch_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const slice &s)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const tiff_reader &r)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const type_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const value_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const Path &p)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const Path::Element &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const PathObject::Type &type)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const Version &version)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const bool_t &b)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream&, const exception&)
- std::ostream &operator<<(std::ostream &o, const ifd &image_dir)
- std::ostream &operator<<(std::ostream &o, const ifd_entry &e)
- std::ostream &operator<<(std::ostream &o, const strip_reader &r)
- std::ostream &operator<<(std::ostream &o, const tiff_read_error &e)
- template<typename ArrayT> std::ostream &operator<<(std::ostream &stream, const array_view<ArrayT> &v)
- template<typename ElementT> std::ostream &operator<<(std::ostream &os, const scalar<ElementT> &s)
- template<typename IntegerT> std::ostream &operator<<(std::ostream &o, const rational<IntegerT> &r)
- template<typename StorageT, typename IndexMapT, typename InplaceArithmeticT> std::ostream &operator<<(std::ostream &o, const mdarray<StorageT, IndexMapT, InplaceArithmeticT> &a)

Predicates

Warning

doxygenfunction: Cannot find function “is_numeric” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

Warning

doxygenfunction: Unable to resolve function “is_integer” with arguments (type_id_t) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- bool is_integer(const pni::string &input)

Warning

doxygenfunction: Unable to resolve function “is_complex” with arguments (type_id_t) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- bool is_complex(const pni::string &input)

Warning

doxygenfunction: Unable to resolve function “is_float” with arguments (type_id_t) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- bool is_float(const pni::string &input)

Warning

doxygenfunction: Cannot find function “is_checked_convertible” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

Warning

doxygenfunction: Cannot find function “is_unchecked_convertible” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

Warning

doxygenfunction: Cannot find function “is_convertible” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

Utility functions

Warning

doxygenfunction: Cannot find function “type_id_from_str” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

Warning

doxygenfunction: Cannot find function “str_from_type_id” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

Warning

doxygenfunction: Unable to resolve function “type_id” with arguments (const GeneralT&) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- PNINEXUS_EXPORT type_id_t type_id(const array &a)
- PNINEXUS_EXPORT type_id_t type_id(const value &rv)
- pni::type_id_t type_id() const
- pni::type_id_t type_id() const
- pni::type_id_t type_id() const
- type_id_t type_id() const
- type_id_t type_id() const
- type_id_t type_id() const
- type_id_t type_id() const
- type_id_t type_id() const = 0
- type_id_t type_id() const = 0
- type_id_t type_id() const noexcept

pni::type_class_t

Warning

doxygenenum: Cannot find enum “pni::type_class_t” in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml

pni::bool_t

class bool_t

boolean type

There is a particular problem when using the standard bool type in connection with std::vector. The std::vector template is overloaded for bool in a sense that each boolean value is stored in an individual bit. Thus elements cannot be addressed. Thus std::vector<bool> cannot be used in connection with libpninexus. This type prevents the C++ compiler to overload std:vector<bool_t> making boolean values available for libpninexus.

Public Functions

inline bool_t()

default constructor

inline bool_t(bool v)

conversion constructor

inline operator bool() const

conversion operator

pni::none

struct none

none type

This type is used in situations where a type for initialization is required but not provided (or at the moment not available). It thus denotes the absence of type information.

Operators

Warning

doxygenfunction: Unable to resolve function “operator<<” with arguments (std::ostream&, const none&) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const Node &n)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_argument_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_help_request &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const cli_option_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const column_info &ci)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const exception_record &rec)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const file_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const filter_not_available &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const image_info &i)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const index_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const invalid_object_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const io_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const iterator_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const key_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const link_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const memory_allocation_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const memory_not_allocated_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const not_implemented_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const object_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const parser_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const range_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const shape_mismatch_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const size_mismatch_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const slice &s)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const tiff_reader &r)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const type_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const value_error &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const Path &p)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const Path::Element &e)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const PathObject::Type &type)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const Version &version)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const bool_t &b)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream&, const exception&)
- std::ostream &operator<<(std::ostream &o, const ifd &image_dir)
- std::ostream &operator<<(std::ostream &o, const ifd_entry &e)
- std::ostream &operator<<(std::ostream &o, const strip_reader &r)
- std::ostream &operator<<(std::ostream &o, const tiff_read_error &e)
- template<typename ArrayT> std::ostream &operator<<(std::ostream &stream, const array_view<ArrayT> &v)
- template<typename ElementT> std::ostream &operator<<(std::ostream &os, const scalar<ElementT> &s)
- template<typename IntegerT> std::ostream &operator<<(std::ostream &o, const rational<IntegerT> &r)
- template<typename StorageT, typename IndexMapT, typename InplaceArithmeticT> std::ostream &operator<<(std::ostream &o, const mdarray<StorageT, IndexMapT, InplaceArithmeticT> &a)

Warning

doxygenfunction: Unable to resolve function “operator>>” with arguments (std::istream&, none&) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- PNINEXUS_EXPORT std::istream &operator>>(std::istream &i, Path &p)
- PNINEXUS_EXPORT std::istream &operator>>(std::istream &stream, Version &version)
- PNINEXUS_EXPORT std::istream &operator>>(std::istream &stream, bool_t &b)
- PNINEXUS_EXPORT std::istream &operator>>(std::istream &stream, hdf5::datatype::EBool &b)
- template<typename ArrayT> std::istream &operator>>(std::istream &stream, array_view<ArrayT> &v)
- template<typename ElementT> std::istream &operator>>(std::istream &is, scalar<ElementT> &s)
- template<typename StorageT, typename IndexMapT, typename InplaceArithmeticT> std::istream &operator>>(std::istream &is, mdarray<StorageT, IndexMapT, InplaceArithmeticT> &a)

Warning

doxygenfunction: Unable to resolve function “operator==” with arguments (const none&, const none&) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- PNINEXUS_EXPORT bool operator==(const Path &lhs, const Path &rhs)
- PNINEXUS_EXPORT bool operator==(const Path::Element &a, const Path::Element &b)
- PNINEXUS_EXPORT bool operator==(const Version &lhs, const Version &rhs)
- PNINEXUS_EXPORT bool operator==(const complex128 &a, const complex32 &b)
- PNINEXUS_EXPORT bool operator==(const complex128 &a, const complex64 &b)
- PNINEXUS_EXPORT bool operator==(const complex32 &a, const complex128 &b)
- PNINEXUS_EXPORT bool operator==(const complex32 &a, const complex64 &b)
- PNINEXUS_EXPORT bool operator==(const complex64 &a, const complex128 &b)
- PNINEXUS_EXPORT bool operator==(const complex64 &a, const complex32 &b)
- PNINEXUS_EXPORT bool operator==(const slice &lhs, const slice &rhs)
- bool operator==(const iterator_type &a)
- bool operator==(const iterator_type &a)
- bool operator==(const iterator_type &a)
- bool operator==(const iterator_type &a) const
- template<typename ArrayT> bool operator==(const array_view<ArrayT> &a, const array_view<ArrayT> &b)
- template<typename ElementT> bool operator==(const scalar<ElementT> &a, const scalar<ElementT> &b)
- template<typename StorageT, typename IndexMapT, typename InplaceArithmeticT> bool operator==(const mdarray<StorageT, IndexMapT, InplaceArithmeticT> &b1, const mdarray<StorageT, IndexMapT, InplaceArithmeticT> &b2)

Warning

doxygenfunction: Unable to resolve function “operator!=” with arguments (const none&, const none&) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- PNINEXUS_EXPORT bool operator!=(const Path &lhs, const Path &rhs)
- PNINEXUS_EXPORT bool operator!=(const Path::Element &a, const Path::Element &b)
- PNINEXUS_EXPORT bool operator!=(const Version &lhs, const Version &rhs)
- PNINEXUS_EXPORT bool operator!=(const complex128 &a, const complex32 &b)
- PNINEXUS_EXPORT bool operator!=(const complex128 &a, const complex64 &b)
- PNINEXUS_EXPORT bool operator!=(const complex32 &a, const complex128 &b)
- PNINEXUS_EXPORT bool operator!=(const complex32 &a, const complex64 &b)
- PNINEXUS_EXPORT bool operator!=(const complex64 &a, const complex128 &b)
- PNINEXUS_EXPORT bool operator!=(const complex64 &a, const complex32 &b)
- PNINEXUS_EXPORT bool operator!=(const slice &lhs, const slice &rhs)
- bool operator!=(const iterator_type &a)
- bool operator!=(const iterator_type &a)
- bool operator!=(const iterator_type &a)
- bool operator!=(const iterator_type &a) const
- template<typename ArrayT> bool operator!=(const array_view<ArrayT> &a, const array_view<ArrayT> &b)
- template<typename ElementT> bool operator!=(const scalar<ElementT> &a, const scalar<ElementT> &b)
- template<typename StorageT, typename IndexMapT, typename InplaceArithmeticT> bool operator!=(const mdarray<StorageT, IndexMapT, InplaceArithmeticT> &b1, const mdarray<StorageT, IndexMapT, InplaceArithmeticT> &b2)

pni::binary_t

template<typename NativeT>
class binary_t

Binary data type.

This class represents a binary data type. Typically binary data is represented by a typedef to an unsigned char type. However, this has an inconvenience: the unsigned char and the typedef for binary are indistinguishable by the compiler. Thus, such a binary type cannot be used for function overloading or for template specialization - it would always be treated by the compiler as the underlying unsigned char type.

To circumvent this problem libpninexus defines this binary type which can be used instead of a simple typedef to unsigned char. The BinaryType template has several advantages:

  • it can be distinguished from the type used to store binary data

  • all arithmetic operators are stripped from the type.

Thus this type cannot be used for arithmetic operations directly. Its primary purpose is to hold uninterpreted binary data for transfer. However it can be converted to the native type used to hold the data. Stream operators are provided for IO operations using binary data.

Template Parameters:

NativeT – native type used to store binary data

Public Types

typedef NativeT storage_type

native type that is used for binary data

Public Functions

inline explicit binary_t()

default constructor

inline binary_t(const storage_type &value)

constructor

inline binary_t(const binary_t<storage_type> &o)

copy constructor

inline operator NativeT() const

conversion operator

Allows a conversion from BinaryType<NativeT> to the underlying NativeT.

Warning

doxygenfunction: Unable to resolve function “pni::operator<<” with arguments (std::ostream&, const binary_t<NativeT>&) in doxygen xml output for project “libpninexus” from directory: /home/p00user/build/doc/api/xml. Potential matches:

- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const column_info &ci)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const exception_record &rec)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &o, const slice &s)
- PNINEXUS_EXPORT std::ostream &operator<<(std::ostream &stream, const bool_t &b)
- template<typename ArrayT> std::ostream &operator<<(std::ostream &stream, const array_view<ArrayT> &v)
- template<typename ElementT> std::ostream &operator<<(std::ostream &os, const scalar<ElementT> &s)
- template<typename StorageT, typename IndexMapT, typename InplaceArithmeticT> std::ostream &operator<<(std::ostream &o, const mdarray<StorageT, IndexMapT, InplaceArithmeticT> &a)