module diffstruc !! This is the top-level module for the diffstruc Fortran library. use coreutils, only: real32 use diffstruc__global, only: diffstruc__max_recursion_depth, diffstruc__init_map_cap use diffstruc__types, only: & array_type, get_partial, & operator(+), operator(-), operator(*), operator(/), operator(**), & sum, mean, spread, unspread, exp, log use diffstruc__operations_trig, only: sin, cos, tan use diffstruc__operations_hyp, only: tanh use diffstruc__operations_linalg, only: & matmul, operator(.mmul.), & outer_product, operator(.outer.), & dot_product, operator(.dot.), & transpose use diffstruc__operations_broadcast, only: & concat, slice_left, slice_right, ltrim, rtrim, & operator(.index.), reverse_index, & pack, unpack, reshape use diffstruc__operations_comparison, only: & operator(.lt.), operator(.gt.), operator(.le.), operator(.ge.), merge use diffstruc__operations_reduction, only: maxval, max use diffstruc__operations_maths, only: sqrt, sign, sigmoid, gaussian, abs, & log10, squared, cubed implicit none private public :: real32 public :: diffstruc__max_recursion_depth, diffstruc__init_map_cap public :: array_type, get_partial public :: operator(+), operator(-), operator(*), operator(/), operator(**) public :: sum, mean, spread, unspread, exp, log public :: sin, cos, tan public :: tanh public :: matmul, operator(.mmul.), & outer_product, operator(.outer.), & dot_product, operator(.dot.), & transpose public :: concat, slice_left, slice_right, ltrim, rtrim, & operator(.index.), reverse_index, & pack, unpack, reshape public :: operator(.lt.), operator(.gt.), operator(.le.), operator(.ge.), merge public :: maxval, max public :: sqrt, sign, sigmoid, gaussian, abs, log10, squared, cubed end module diffstruc