My Project
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
PINN< Layers > Class Template Reference

Compile-time feedforward network with static forward. More...

#include <pinn_network.hpp>

Public Types

using Architecture = std::tuple< Layers... >
 

Public Member Functions

 PINN ()
 
void init_params ()
 Initialize parameters with layer-wise uniform bounds. More...
 

Static Public Member Functions

template<size_t I>
static ENZYME_INLINE void process_layers (const Real *&p_ptr, Real *input_buf, Real *output_buf)
 Apply all layers in sequence using alternating buffers. More...
 
static ENZYME_INLINE Real forward_static (const Real *x_ptr, const Real *p_ptr)
 Stateless forward evaluation for a single input. More...
 

Public Attributes

std::vector< Realparams
 

Static Public Attributes

static constexpr int TotalParams = (0 + ... + Layers::NumParams)
 
static constexpr int MaxLayerSize = std::max({Layers::InSize..., Layers::OutSize...})
 

Detailed Description

template<typename... Layers>
class PINN< Layers >

Compile-time feedforward network with static forward.

Member Typedef Documentation

◆ Architecture

template<typename... Layers>
using PINN< Layers >::Architecture = std::tuple<Layers...>

Constructor & Destructor Documentation

◆ PINN()

template<typename... Layers>
PINN< Layers >::PINN ( )
inline
Here is the call graph for this function:

Member Function Documentation

◆ forward_static()

template<typename... Layers>
static ENZYME_INLINE Real PINN< Layers >::forward_static ( const Real x_ptr,
const Real p_ptr 
)
inlinestatic

Stateless forward evaluation for a single input.

◆ init_params()

template<typename... Layers>
void PINN< Layers >::init_params ( )
inline

Initialize parameters with layer-wise uniform bounds.

Here is the caller graph for this function:

◆ process_layers()

template<typename... Layers>
template<size_t I>
static ENZYME_INLINE void PINN< Layers >::process_layers ( const Real *&  p_ptr,
Real input_buf,
Real output_buf 
)
inlinestatic

Apply all layers in sequence using alternating buffers.

Member Data Documentation

◆ MaxLayerSize

template<typename... Layers>
constexpr int PINN< Layers >::MaxLayerSize = std::max({Layers::InSize..., Layers::OutSize...})
staticconstexpr

◆ params

template<typename... Layers>
std::vector<Real> PINN< Layers >::params

◆ TotalParams

template<typename... Layers>
constexpr int PINN< Layers >::TotalParams = (0 + ... + Layers::NumParams)
staticconstexpr

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