API Reference
This section provides comprehensive documentation for all functions, classes, and methods in the HPFRACC library.
Note
RL / Caputo / Grünwald–Letnikov layout
Engines — single numerical implementations in
hpfracc.algorithms.derivatives(RiemannLiouville,Caputo,GrunwaldLetnikov).``Optimized*`` names — aliases of those same classes in
hpfracc.algorithms.optimized_methods(and re-exported athpfracc).Adapters —
hpfracc.core.fractional_implementationsclasses (CaputoDerivative,RiemannLiouvilleDerivative, …) implementBaseFractionalDerivativeand delegate to the engines.Top-level
hpfracc.Caputo,hpfracc.RiemannLiouville,hpfracc.GrunwaldLetnikovrefer to the*Derivativeadapters for backward compatibility.Integrals — prefer
hpfracc.core.integralsfor quadrature-based operators;hpfracc.algorithms.integral_methodsadds FFT-oriented helpers and delegates direct RL/Weyl grid paths tocore.integrals(see repositoryCONTRIBUTING.md).``import hpfracc.core`` — only
hpfracc.core.definitionsloads eagerly; othercoresubmodules and re-exports resolve on first use (see__getattr__inhpfracc.core).
Core Module
Fractional Order Definitions
High-Performance Fractional Calculus Library (hpfracc)
A high-performance Python library for numerical methods in fractional calculus, featuring dramatic speedups and production-ready optimizations across all methods.
This library provides optimized implementations of:
- Core fractional derivatives: Caputo, Riemann-Liouville, Grünwald-Letnikov
- Advanced methods: Weyl, Marchaud, Hadamard, Reiz-Feller derivatives
- Fractional operator extensions (Laplacian, FrFT, Z/Mellin): see hpfracc.algorithms.fractional_operator_methods (not hpfracc.special, which is Γ / binomial / Mittag–Leffler)
- GPU acceleration via JAX, PyTorch, and CuPy
- Parallel computing via NUMBA
- hpfracc.OptimizedRiemannLiouville
alias of
RiemannLiouville
- hpfracc.OptimizedGrunwaldLetnikov
alias of
GrunwaldLetnikov
- class hpfracc.FractionalOrder(alpha, validate=True, method=None)[source]
Bases:
objectRepresents a fractional order with validation and properties.
The fractional order α can be any real number, but typically we consider 0 < α < 2 for most applications.
- Parameters:
alpha (float | FractionalOrder)
validate (bool)
method (str)
- class hpfracc.WeylDerivative(alpha, parallel_config=None, optimized=True, **kwargs)[source]
Bases:
objectWeyl fractional derivative via FFT Convolution with parallelization.
The Weyl derivative is defined as: D^α f(x) = (1/Γ(n-α)) (d/dx)^n ∫_x^∞ (τ-x)^(n-α-1) f(τ) dτ
This implementation uses FFT convolution for efficiency and parallel processing.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
optimized (bool)
- __init__(alpha, parallel_config=None, optimized=True, **kwargs)[source]
Initialize Weyl derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
optimized (bool)
- compute(f, x, h=None, use_parallel=True)[source]
Compute Weyl derivative using optimized FFT convolution.
- class hpfracc.MarchaudDerivative(alpha, parallel_config=None, **kwargs)[source]
Bases:
objectMarchaud fractional derivative with Difference Quotient convolution and memory optimization.
The Marchaud derivative is defined as: D^α f(x) = α/Γ(1-α) ∫_0^∞ [f(x) - f(x-τ)] / τ^(α+1) dτ
This implementation uses difference quotient convolution with memory optimization.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- __init__(alpha, parallel_config=None, **kwargs)[source]
Initialize Marchaud derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- compute(f, x, h=None, use_parallel=True, memory_optimized=True)[source]
Compute Marchaud derivative with memory optimization.
- _compute_memory_optimized(f, x, h, use_parallel)[source]
Memory-optimized computation using streaming approach.
- class hpfracc.FractionalLaplacian(alpha, *, dimension=1, boundary_conditions=None)[source]
Bases:
objectFractional Laplacian operator implementation.
The fractional Laplacian is defined as: \((-\Delta)^{\alpha/2} f(x) = \mathcal{F}^{-1}\left(|\xi|^{\alpha}\, \mathcal{F}[f](\xi)\right)\)
This is a fundamental operator in fractional PDEs, diffusion processes, and many physical applications.
- Parameters:
alpha (float | FractionalOrder)
dimension (int)
boundary_conditions (str | None)
- __init__(alpha, *, dimension=1, boundary_conditions=None)[source]
Initialize fractional Laplacian calculator.
- Parameters:
order – Fractional order (0 < α < 2)
dimension (int) – Spatial dimension
boundary_conditions (str | None) – Boundary condition type
alpha (float | FractionalOrder)
- compute(f, x, h=None, method='spectral')[source]
Compute fractional Laplacian.
- Parameters:
- Returns:
Fractional Laplacian values
- Return type:
- compute_numerical(f, x, h=None)[source]
Numerical convenience API used by tests.
Uses finite-difference approximation under the hood.
- class hpfracc.FractionalFourierTransform(alpha, *, method='spectral')[source]
Bases:
objectFractional Fourier Transform (FrFT) implementation.
The fractional Fourier transform is a generalization of the Fourier transform that depends on a parameter α. For α = π/2, it reduces to the standard Fourier transform.
FrFT[f](u) = ∫_{-∞}^∞ K_α(x, u) f(x) dx
where K_α is the fractional Fourier kernel.
- Parameters:
alpha (float | FractionalOrder)
method (str)
- __init__(alpha, *, method='spectral')[source]
Initialize fractional Fourier transform calculator.
- Parameters:
alpha (float | FractionalOrder)
method (str)
- compute(f, x, h=None, method='auto')[source]
Compatibility wrapper returning only transformed values.
Some call sites expect a compute(…) API that returns the transformed values array directly. This method delegates to transform(…) and returns only the values component.
- _discrete_method(f, x, h)[source]
Discrete fractional Fourier transform using optimized FFT-based approach.
- compute_numerical(f, x, h=None)[source]
Numerical convenience API returning only values.
Maps to the discrete method for accuracy.
- _compute_transform_matrix(x, u, h)[source]
Compute the discrete fractional Fourier transform matrix.
- class hpfracc.RiemannLiouvilleIntegral(order)[source]
Bases:
FractionalIntegralRiemann-Liouville fractional integral.
The Riemann-Liouville fractional integral of order α is defined as:
I^α f(t) = (1/Γ(α)) ∫₀ᵗ (t-τ)^(α-1) f(τ) dτ
where Γ(α) is the gamma function.
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.CaputoIntegral(order)[source]
Bases:
FractionalIntegralCaputo fractional integral.
The Caputo fractional integral is related to the Riemann-Liouville integral and is often more suitable for initial value problems.
Supports all fractional orders α ≥ 0: - For 0 < α < 1: Equals Riemann-Liouville integral - For α ≥ 1: Uses decomposition I^α = I^n * I^β where α = n + β
Examples
>>> from hpfracc.core.integrals import CaputoIntegral >>> def f(x): return x**2 >>> # For 0 < α < 1 >>> integral_05 = CaputoIntegral(0.5) >>> result = integral_05(f, 1.0) >>> # For α ≥ 1 >>> integral_15 = CaputoIntegral(1.5) >>> result = integral_15(f, 1.0)
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.CaputoFabrizioDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeCaputo-Fabrizio fractional derivative implementation.
Uses the novel implementation from algorithms.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.AtanganaBaleanuDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeAtangana-Baleanu fractional derivative implementation.
Uses the novel implementation from algorithms.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- hpfracc.RiemannLiouville
alias of
RiemannLiouvilleDerivative
- class hpfracc.RiemannLiouvilleDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeRiemann-Liouville fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.RiemannLiouville.- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- hpfracc.Caputo
alias of
CaputoDerivative
- class hpfracc.CaputoDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeCaputo fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.Caputo(single implementation path).- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- hpfracc.GrunwaldLetnikov
alias of
GrunwaldLetnikovDerivative
- class hpfracc.GrunwaldLetnikovDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeGrünwald–Letnikov fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.GrunwaldLetnikov.- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.HadamardDerivative(alpha=None, order=None, **kwargs)[source]
Bases:
objectHadamard fractional derivative.
The Hadamard derivative is defined as: D^α f(x) = (1/Γ(n-α)) (x d/dx)^n ∫_1^x (log(x/t))^(n-α-1) f(t) dt/t
This implementation uses logarithmic transformation and efficient quadrature.
- Parameters:
alpha (float | FractionalOrder | None)
order (float | FractionalOrder | None)
- __init__(alpha=None, order=None, **kwargs)[source]
Initialize Hadamard derivative calculator.
Accepts both alpha and order for backward compatibility.
- Parameters:
alpha (float | FractionalOrder | None)
order (float | FractionalOrder | None)
- class hpfracc.ReizFellerDerivative(alpha, parallel_config=None, **kwargs)[source]
Bases:
objectReiz-Feller fractional derivative via spectral method.
The Reiz-Feller derivative is defined as: \(D^{\alpha} f(x) = \frac{1}{2\pi} \int_{-\infty}^{\infty} |\xi|^{\alpha} \, \mathcal{F}[f](\xi) \, e^{i\xi x} \, d\xi\)
This implementation uses FFT for spectral computation.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- __init__(alpha, parallel_config=None, **kwargs)[source]
Initialize Reiz-Feller derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- class hpfracc.FractionalZTransform(alpha, *, method='spectral')[source]
Bases:
objectFractional Z-Transform implementation.
The fractional Z-transform is a generalization of the Z-transform that depends on a fractional parameter α. It’s useful for discrete-time systems and digital signal processing.
Z^α[f](z) = Σ_{n=0}^∞ f[n] z^(-αn)
- Parameters:
alpha (float | FractionalOrder)
method (str)
- __init__(alpha, *, method='spectral')[source]
Initialize fractional Z-transform calculator.
- Parameters:
alpha (float | FractionalOrder)
method (str)
- class hpfracc.FractionalMellinTransform(alpha)[source]
Bases:
objectFractional Mellin Transform implementation.
The fractional Mellin transform is defined as: M_α[f](s) = ∫₀^∞ f(x) x^(s-1+α) dx
This transform is useful for: - Scale-invariant signal processing - Fractional differential equations - Image processing and pattern recognition - Quantum mechanics applications
- Parameters:
alpha (float | FractionalOrder)
- __init__(alpha)[source]
Initialize fractional Mellin transform calculator.
- Parameters:
alpha (float | FractionalOrder)
- transform(f, x, s, method='numerical')[source]
Compute fractional Mellin transform.
- Parameters:
- Returns:
Transform values
- Return type:
- inverse_transform(F, s, x, method='numerical')[source]
Compute inverse fractional Mellin transform.
Core Algorithms
Unified fractional derivative engines (canonical implementation path).
RiemannLiouville, Caputo, and GrunwaldLetnikov here are the single
dispatching implementations used across the library. Higher-level wrappers in
hpfracc.core.fractional_implementations delegate to these classes; names such as
OptimizedCaputo in hpfracc.algorithms.optimized_methods are backward-compatible
aliases of the same types. ParallelOptimized* in that module are the same engine
classes with a parallel-oriented name; compute_numerical is provided on
UnifiedFractionalOperator so call sites match adapter-style APIs without duplicating
kernels.
- hpfracc.algorithms.derivatives._handle_backend_failure(method, backend, error)[source]
Apply fail-fast policy or explicit warning for backend failures.
- class hpfracc.algorithms.derivatives.UnifiedFractionalOperator(order, backend='auto')[source]
Bases:
FractionalOperatorBase class for unified operators with backend dispatch.
- Parameters:
order (float | FractionalOrder)
backend (str)
- __init__(order, backend='auto')[source]
- Parameters:
order (float | FractionalOrder)
backend (str)
- compute_numerical(f_values, x_values, **kwargs)[source]
Array-in / array-out entry point; same backend path as
compute().Matches the
BaseFractionalDerivative.compute_numericalsurface so parallel and engine aliases can be used interchangeably in tests and factory wiring without a second implementation.
- class hpfracc.algorithms.derivatives.RiemannLiouville(order, backend='auto')[source]
Bases:
UnifiedFractionalOperatorRiemann-Liouville fractional derivative. D^α f(t) = (d/dt)^n I^(n-α) f(t)
- Parameters:
order (float | FractionalOrder)
backend (str)
- __init__(order, backend='auto')[source]
- Parameters:
order (float | FractionalOrder)
backend (str)
- class hpfracc.algorithms.derivatives.Caputo(order, backend='auto')[source]
Bases:
UnifiedFractionalOperatorCaputo fractional derivative. D^α f(t) = I^(n-α) f^(n)(t)
- Parameters:
order (float | FractionalOrder)
backend (str)
- class hpfracc.algorithms.derivatives.GrunwaldLetnikov(order, backend='auto')[source]
Bases:
UnifiedFractionalOperatorGrünwald-Letnikov fractional derivative.
- Parameters:
order (float | FractionalOrder)
backend (str)
Backward-compatibility shim for legacy Optimized* names (RL / Caputo / GL engines).
The only RL / Caputo / Grünwald–Letnikov implementations are
RiemannLiouville,
Caputo, and
GrunwaldLetnikov.
Optimized* and ParallelOptimized* here are thin aliases of those classes.
Deprecated GPU-prefixed wrappers and GPUConfig also live here. Import them
from this module only.
Prefer: from hpfracc.algorithms.derivatives import Caputo.
Numerical integrity: symbols that are not implemented do not silently succeed. They raise NotImplementedError with guidance. Reserved APIs may be implemented later.
- class hpfracc.algorithms.optimized_methods.OptimizedFractionalMethods[source]
Bases:
objectReserved unified facade; not implemented — use per-method classes in derivatives.
- class hpfracc.algorithms.optimized_methods.ParallelConfig(n_jobs=1, enabled=False, *, num_workers=None, chunk_size=None, **kwargs)[source]
Bases:
objectConfiguration for optional parallel paths in advanced_methods (e.g. Weyl).
Accepts
n_jobs/enabledand common aliasesnum_workers,chunk_size.- Parameters:
- class hpfracc.algorithms.optimized_methods.AdvancedFFTMethods(method='spectral', *args, **kwargs)[source]
Bases:
objectReserved for future FFT-focused helpers; not implemented.
- class hpfracc.algorithms.optimized_methods.L1L2Schemes(scheme='l1', *args, **kwargs)[source]
Bases:
objectReserved for L1/L2 temporal discretization helpers; not implemented.
- class hpfracc.algorithms.optimized_methods.ParallelLoadBalancer[source]
Bases:
objectReserved for future parallel chunking; no balancing logic yet.
- class hpfracc.algorithms.optimized_methods.ParallelOptimizedRiemannLiouville(order, backend='auto')[source]
Bases:
RiemannLiouvilleAlias for
RiemannLiouville.- Parameters:
order (float | FractionalOrder)
backend (str)
- class hpfracc.algorithms.optimized_methods.ParallelOptimizedCaputo(order, backend='auto')[source]
Bases:
CaputoAlias for
Caputo.- Parameters:
order (float | FractionalOrder)
backend (str)
- class hpfracc.algorithms.optimized_methods.ParallelOptimizedGrunwaldLetnikov(order, backend='auto')[source]
Bases:
GrunwaldLetnikovAlias for
GrunwaldLetnikov.- Parameters:
order (float | FractionalOrder)
backend (str)
- class hpfracc.algorithms.optimized_methods.NumbaFractionalKernels(*args, **kwargs)[source]
Bases:
object
- class hpfracc.algorithms.optimized_methods.NumbaParallelManager(*args, **kwargs)[source]
Bases:
object
- class hpfracc.algorithms.optimized_methods.GPUConfig(backend='auto', memory_limit=0.8, batch_size=None, multi_gpu=False, monitor_performance=True, fallback_to_cpu=True, device_id=None, use_intelligent_selection=True)[source]
Bases:
object[DEPRECATED] Legacy GPU dispatch config; use
backend=on unified engines.- Parameters:
- class hpfracc.algorithms.optimized_methods._LegacyGPUShim[source]
Bases:
objectMap legacy
GPUConfigbackend strings to unifiedbackend.
- class hpfracc.algorithms.optimized_methods.GPUOptimizedRiemannLiouville(alpha, gpu_config=None, *, config=None, batch_size=None)[source]
Bases:
RiemannLiouville,_LegacyGPUShim[DEPRECATED] Use
RiemannLiouville(..., backend='jax'|'cuda'|'numpy').- Parameters:
- class hpfracc.algorithms.optimized_methods.GPUOptimizedCaputo(alpha, gpu_config=None, *, config=None, memory_efficient=None)[source]
Bases:
Caputo,_LegacyGPUShim[DEPRECATED] Use
Caputo(..., backend='jax'|'cuda'|'numpy').- Parameters:
- class hpfracc.algorithms.optimized_methods.GPUOptimizedGrunwaldLetnikov(alpha, gpu_config=None, *, config=None, use_shared_memory=None)[source]
Bases:
GrunwaldLetnikov,_LegacyGPUShim[DEPRECATED] Use
GrunwaldLetnikov(..., backend='jax'|'cuda'|'numpy').- Parameters:
- class hpfracc.algorithms.optimized_methods.MultiGPUManager(*args, **kwargs)[source]
Bases:
object[DEPRECATED] Stub; not used by unified engines.
- class hpfracc.algorithms.optimized_methods.GPUOptimizedMethods(*args, **kwargs)[source]
Bases:
objectLegacy placeholder; never implemented. Use engines from
derivatives.
- hpfracc.algorithms.optimized_methods.gpu_optimized_riemann_liouville(f, alpha, t, h=None, *args, **kwargs)[source]
- hpfracc.algorithms.optimized_methods.gpu_optimized_caputo(f, alpha, t, h=None, *args, **kwargs)[source]
- hpfracc.algorithms.optimized_methods.gpu_optimized_grunwald_letnikov(f, alpha, t, h=None, *args, **kwargs)[source]
Fractional Integral Methods
Legacy / alternate API: FFT- and method-switching integral classes used by
existing tests and examples. For the canonical integral hierarchy tied to
FractionalOrder and core (quad-based __call__ / compute), use
hpfracc.core.integrals (RiemannLiouvilleIntegral, CaputoIntegral, …).
The direct RL path in this module calls that canonical implementation for
α ≥ 1e-4; for smaller α a legacy discrete sum avoids quad blow-up on short grids.
WeylIntegral here follows the same rule: core quad Weyl for normal α,
legacy discrete window for α < 1e-4.
``method`` and ``fft_threshold`` (RL / Caputo): With method="auto", arrays
shorter than fft_threshold (default 1000 on RiemannLiouvilleIntegral)
use the direct path; longer grids use FFT. For α ≥ 1e-4, direct mode calls
hpfracc.core.integrals (quad on each prefix of t). If FFT accumulation looks
unstable for your grid length or α, pass method="direct" or use
core.integrals directly.
``method=”adaptive”``: FFT and direct paths are different discretizations;
cross-check uses a scale-aware relative L2 residual. UserWarning signals
moderate disagreement (direct is returned); RuntimeWarning is reserved for
non-finite FFT output or severe disagreement—see module constants
_ADAPTIVE_AGREE_RTOL and _ADAPTIVE_SEVERE_RTOL.
This module provides high-performance implementations of fractional integrals including Riemann-Liouville and Caputo integrals with optimized algorithms.
- hpfracc.algorithms.integral_methods._adaptive_fft_direct_relative_l2(a, b)[source]
||a-b||_2 / max(||b||_2, eps)for scale-aware comparison.
- class hpfracc.algorithms.integral_methods.RiemannLiouvilleIntegral(alpha, method='auto', optimize_memory=True, use_jax=False)[source]
Bases:
objectRiemann-Liouville fractional integral of order α.
The Riemann-Liouville fractional integral of order α > 0 is defined as:
I^α f(t) = (1/Γ(α)) ∫₀ᵗ (t-τ)^(α-1) f(τ) dτ
where Γ(α) is the gamma function.
Features: - Optimized FFT-based computation for large arrays - Direct method for small arrays with high accuracy - Memory-efficient algorithms - Support for both callable and array inputs - Error estimation and convergence analysis
Thresholds:
method="auto"chooses FFT whenlen(t) >= fft_threshold(default1000); otherwise the direct path is used. Forα ≥ 1e-4, direct computation is delegated tohpfracc.core.integrals.RiemannLiouvilleIntegral.- Parameters:
alpha (float | FractionalOrder)
method (str)
optimize_memory (bool)
use_jax (bool)
- __init__(alpha, method='auto', optimize_memory=True, use_jax=False)[source]
Initialize Riemann-Liouville integral calculator.
- Parameters:
alpha (float | FractionalOrder) – Fractional order (must be > 0)
method (str) – Computation method (“auto”, “fft”, “direct”, “adaptive”)
optimize_memory (bool) – Use memory optimization techniques
use_jax (bool) – Use JAX acceleration if available
- compute(f, t, h=None, method=None)[source]
Compute the Riemann-Liouville fractional integral.
- Parameters:
- Returns:
Array of integral values at each time point
- Return type:
- _compute_fft(f, t, h)[source]
RL fractional integral via linear convolution on the uniform grid.
Matches the legacy discrete sum in
_compute_direct_discrete_legacy()(kernel weight((i-j)h)^{\alpha-1} / \Gamma(\alpha), then\times h). Usesscipy.signal.fftconvolveso the operation is causal (firstnsamples of the full convolution), not periodic length-nFFT convolution (which was incorrect and disagreed strongly with quadrature).
- _compute_direct_discrete_legacy(f, t, h)[source]
Original O(N²) uniform-grid RL sum (used only for tiny α where quad is ill-conditioned).
- _compute_direct(f, t, h)[source]
RL integral on the sample grid via the canonical quad-based implementation in
hpfracc.core.integrals(same definition as the rest of the library), except for extremely small α where the kernel is near-singular on a short grid.
- _compute_adaptive(f, t, h)[source]
Compare FFT to the direct reference on short grids (
len(t) < fft_threshold).FFT and quad/discrete direct are not required to match to tight
allclosetolerances; a scale-aware L2 relative residual is used.RuntimeWarningis used only for non-finite FFT output or severe disagreement; moderate mismatch emitsUserWarningand still returns the direct result.
- class hpfracc.algorithms.integral_methods.CaputoIntegral(alpha, method='auto', optimize_memory=True, use_jax=False)[source]
Bases:
objectCaputo fractional integral of order α.
For α > 0, the Caputo fractional integral equals the Riemann-Liouville integral:
I^α f(t) = (1/Γ(α)) ∫₀ᵗ (t-τ)^(α-1) f(τ) dτ
This class provides a consistent interface while reusing the RL implementation.
methodandfft_thresholdbehaviour matchRiemannLiouvilleIntegral.- Parameters:
alpha (float | FractionalOrder)
method (str)
optimize_memory (bool)
use_jax (bool)
- __init__(alpha, method='auto', optimize_memory=True, use_jax=False)[source]
Initialize Caputo integral calculator.
- Parameters:
alpha (float | FractionalOrder) – Fractional order (must be > 0)
method (str) – Computation method (“auto”, “fft”, “direct”, “adaptive”)
optimize_memory (bool) – Use memory optimization techniques
use_jax (bool) – Use JAX acceleration if available
- class hpfracc.algorithms.integral_methods.WeylIntegral(alpha, method='auto')[source]
Bases:
objectWeyl fractional integral of order α (grid API).
For
α ≥ 1e-4, delegates to the canonical quad-basedhpfracc.core.integrals.WeylIntegral. For smallerα(near-identity kernel), keeps a legacy discrete RL-style sum on the sample grid for stability.- Parameters:
alpha (float | FractionalOrder)
method (str)
- __init__(alpha, method='auto')[source]
- Parameters:
alpha (float | FractionalOrder)
method (str)
- hpfracc.algorithms.integral_methods.riemann_liouville_integral(f, t, alpha, h=None, method='auto')[source]
Compute Riemann-Liouville fractional integral.
- hpfracc.algorithms.integral_methods.caputo_integral(f, t, alpha, h=None, method='auto')[source]
Compute Caputo fractional integral.
- hpfracc.algorithms.integral_methods.optimized_riemann_liouville_integral(f, t, alpha, h=None)[source]
Optimized Riemann-Liouville integral with automatic method selection.
- hpfracc.algorithms.integral_methods.optimized_caputo_integral(f, t, alpha, h=None)[source]
Optimized Caputo integral with automatic method selection.
Advanced Fractional Calculus Methods
This module implements advanced fractional calculus methods with optimizations: - Weyl derivative via FFT Convolution with parallelization - Marchaud derivative with Difference Quotient convolution and memory optimization - Hadamard derivative - Reiz/Reiz-Feller derivative via spectral method - Adomian Decomposition method
All methods include parallel processing and memory optimizations.
Naming: parallel-enhanced variants of Weyl / Marchaud / … are exposed as
Parallel* classes. The legacy names OptimizedWeylDerivative, etc., remain
as aliases of those classes (they are unrelated to OptimizedCaputo in
hpfracc.algorithms.optimized_methods, which aliases the unified RL/Caputo/GL engines).
- class hpfracc.algorithms.advanced_methods.WeylDerivative(alpha, parallel_config=None, optimized=True, **kwargs)[source]
Bases:
objectWeyl fractional derivative via FFT Convolution with parallelization.
The Weyl derivative is defined as: D^α f(x) = (1/Γ(n-α)) (d/dx)^n ∫_x^∞ (τ-x)^(n-α-1) f(τ) dτ
This implementation uses FFT convolution for efficiency and parallel processing.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
optimized (bool)
- __init__(alpha, parallel_config=None, optimized=True, **kwargs)[source]
Initialize Weyl derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
optimized (bool)
- compute(f, x, h=None, use_parallel=True)[source]
Compute Weyl derivative using optimized FFT convolution.
- class hpfracc.algorithms.advanced_methods.MarchaudDerivative(alpha, parallel_config=None, **kwargs)[source]
Bases:
objectMarchaud fractional derivative with Difference Quotient convolution and memory optimization.
The Marchaud derivative is defined as: D^α f(x) = α/Γ(1-α) ∫_0^∞ [f(x) - f(x-τ)] / τ^(α+1) dτ
This implementation uses difference quotient convolution with memory optimization.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- __init__(alpha, parallel_config=None, **kwargs)[source]
Initialize Marchaud derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- compute(f, x, h=None, use_parallel=True, memory_optimized=True)[source]
Compute Marchaud derivative with memory optimization.
- _compute_memory_optimized(f, x, h, use_parallel)[source]
Memory-optimized computation using streaming approach.
- class hpfracc.algorithms.advanced_methods.HadamardDerivative(alpha=None, order=None, **kwargs)[source]
Bases:
objectHadamard fractional derivative.
The Hadamard derivative is defined as: D^α f(x) = (1/Γ(n-α)) (x d/dx)^n ∫_1^x (log(x/t))^(n-α-1) f(t) dt/t
This implementation uses logarithmic transformation and efficient quadrature.
- Parameters:
alpha (float | FractionalOrder | None)
order (float | FractionalOrder | None)
- __init__(alpha=None, order=None, **kwargs)[source]
Initialize Hadamard derivative calculator.
Accepts both alpha and order for backward compatibility.
- Parameters:
alpha (float | FractionalOrder | None)
order (float | FractionalOrder | None)
- class hpfracc.algorithms.advanced_methods.ReizFellerDerivative(alpha, parallel_config=None, **kwargs)[source]
Bases:
objectReiz-Feller fractional derivative via spectral method.
The Reiz-Feller derivative is defined as: \(D^{\alpha} f(x) = \frac{1}{2\pi} \int_{-\infty}^{\infty} |\xi|^{\alpha} \, \mathcal{F}[f](\xi) \, e^{i\xi x} \, d\xi\)
This implementation uses FFT for spectral computation.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- __init__(alpha, parallel_config=None, **kwargs)[source]
Initialize Reiz-Feller derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- class hpfracc.algorithms.advanced_methods.AdomianDecomposition(alpha, parallel_config=None, **kwargs)[source]
Bases:
objectAdomian Decomposition Method for solving fractional differential equations.
This method decomposes the solution into a series and computes each term using the Adomian polynomials.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- __init__(alpha, parallel_config=None, **kwargs)[source]
Initialize Adomian Decomposition solver.
- Parameters:
alpha (float | FractionalOrder)
parallel_config (ParallelConfig | None)
- solve(equation, initial_conditions, t_span, n_steps=1000, n_terms=10, use_parallel=True)[source]
Solve fractional differential equation using Adomian decomposition.
- Parameters:
- Returns:
Tuple of (time_points, solution)
- Return type:
- _compute_adomian_polynomial(equation, previous_terms, n, t)[source]
Compute the nth Adomian polynomial.
- hpfracc.algorithms.advanced_methods.weyl_derivative(f, x, alpha, h=None, **kwargs)[source]
Convenience function for Weyl derivative.
- hpfracc.algorithms.advanced_methods.marchaud_derivative(f, x, alpha, h=None, **kwargs)[source]
Convenience function for Marchaud derivative.
- hpfracc.algorithms.advanced_methods.hadamard_derivative(f, x, alpha, h=None, **kwargs)[source]
Convenience function for Hadamard derivative.
- hpfracc.algorithms.advanced_methods.reiz_feller_derivative(f, x, alpha, h=None, **kwargs)[source]
Convenience function for Reiz-Feller derivative.
- class hpfracc.algorithms.advanced_methods.ParallelWeylDerivative(order, **kwargs)[source]
Bases:
WeylDerivativeWeyl derivative with
optimized=Truedefaults (parallel / FFT path).- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize Weyl derivative calculator.
- Parameters:
order (float | FractionalOrder)
- class hpfracc.algorithms.advanced_methods.ParallelMarchaudDerivative(order, **kwargs)[source]
Bases:
MarchaudDerivativeMarchaud derivative exposed under the parallel-enhanced naming scheme.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize Marchaud derivative calculator.
- Parameters:
order (float | FractionalOrder)
- class hpfracc.algorithms.advanced_methods.ParallelHadamardDerivative(order, **kwargs)[source]
Bases:
HadamardDerivativeHadamard derivative under the parallel-enhanced naming scheme.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize Hadamard derivative calculator.
Accepts both alpha and order for backward compatibility.
- Parameters:
order (float | FractionalOrder)
- class hpfracc.algorithms.advanced_methods.ParallelReizFellerDerivative(order, **kwargs)[source]
Bases:
ReizFellerDerivativeReiz–Feller derivative under the parallel-enhanced naming scheme.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize Reiz-Feller derivative calculator.
- Parameters:
order (float | FractionalOrder)
- class hpfracc.algorithms.advanced_methods.ParallelAdomianDecomposition(order, **kwargs)[source]
Bases:
AdomianDecompositionAdomian decomposition under the parallel-enhanced naming scheme.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize Adomian Decomposition solver.
- Parameters:
order (float | FractionalOrder)
- hpfracc.algorithms.advanced_methods.OptimizedWeylDerivative
alias of
ParallelWeylDerivative
- hpfracc.algorithms.advanced_methods.OptimizedMarchaudDerivative
alias of
ParallelMarchaudDerivative
- hpfracc.algorithms.advanced_methods.OptimizedHadamardDerivative
alias of
ParallelHadamardDerivative
- hpfracc.algorithms.advanced_methods.OptimizedReizFellerDerivative
alias of
ParallelReizFellerDerivative
- hpfracc.algorithms.advanced_methods.OptimizedAdomianDecomposition
alias of
ParallelAdomianDecomposition
- hpfracc.algorithms.advanced_methods.parallel_weyl_derivative(f, x, alpha, h=None, **kwargs)[source]
- hpfracc.algorithms.advanced_methods.parallel_marchaud_derivative(f, x, alpha, h=None, **kwargs)[source]
- hpfracc.algorithms.advanced_methods.parallel_hadamard_derivative(f, x, alpha, h=None, **kwargs)[source]
- hpfracc.algorithms.advanced_methods.parallel_reiz_feller_derivative(f, x, alpha, h=None, **kwargs)[source]
- hpfracc.algorithms.advanced_methods.optimized_weyl_derivative(f, x, alpha, h=None, **kwargs)[source]
- hpfracc.algorithms.advanced_methods.optimized_marchaud_derivative(f, x, alpha, h=None, **kwargs)[source]
- hpfracc.algorithms.advanced_methods.optimized_hadamard_derivative(f, x, alpha, h=None, **kwargs)[source]
- hpfracc.algorithms.advanced_methods.optimized_reiz_feller_derivative(f, x, alpha, h=None, **kwargs)[source]
Fractional operator extensions (Laplacian, FrFT, Z/Mellin transforms).
This is the algorithms-layer complement to hpfracc.special (Γ, β, binomial,
Mittag–Leffler). It implements operators used in PDEs and signal processing:
Fractional Laplacian
Fractional Fourier / Z / Mellin transforms
Canonical import: from hpfracc.algorithms.fractional_operator_methods import ....
The legacy path hpfracc.algorithms.special_methods remains a thin re-export shim.
- hpfracc.algorithms.fractional_operator_methods._numpy_trapezoid(y, x)[source]
Trapezoidal rule; prefers
numpy.trapezoid(NumPy 2+) over deprecatedtrapz.
- hpfracc.algorithms.fractional_operator_methods._factorial(n)
Simple factorial function for NUMBA compatibility.
- class hpfracc.algorithms.fractional_operator_methods.FractionalLaplacian(alpha, *, dimension=1, boundary_conditions=None)[source]
Bases:
objectFractional Laplacian operator implementation.
The fractional Laplacian is defined as: \((-\Delta)^{\alpha/2} f(x) = \mathcal{F}^{-1}\left(|\xi|^{\alpha}\, \mathcal{F}[f](\xi)\right)\)
This is a fundamental operator in fractional PDEs, diffusion processes, and many physical applications.
- Parameters:
alpha (float | FractionalOrder)
dimension (int)
boundary_conditions (str | None)
- __init__(alpha, *, dimension=1, boundary_conditions=None)[source]
Initialize fractional Laplacian calculator.
- Parameters:
order – Fractional order (0 < α < 2)
dimension (int) – Spatial dimension
boundary_conditions (str | None) – Boundary condition type
alpha (float | FractionalOrder)
- compute(f, x, h=None, method='spectral')[source]
Compute fractional Laplacian.
- Parameters:
- Returns:
Fractional Laplacian values
- Return type:
- compute_numerical(f, x, h=None)[source]
Numerical convenience API used by tests.
Uses finite-difference approximation under the hood.
- class hpfracc.algorithms.fractional_operator_methods.FractionalFourierTransform(alpha, *, method='spectral')[source]
Bases:
objectFractional Fourier Transform (FrFT) implementation.
The fractional Fourier transform is a generalization of the Fourier transform that depends on a parameter α. For α = π/2, it reduces to the standard Fourier transform.
FrFT[f](u) = ∫_{-∞}^∞ K_α(x, u) f(x) dx
where K_α is the fractional Fourier kernel.
- Parameters:
alpha (float | FractionalOrder)
method (str)
- __init__(alpha, *, method='spectral')[source]
Initialize fractional Fourier transform calculator.
- Parameters:
alpha (float | FractionalOrder)
method (str)
- compute(f, x, h=None, method='auto')[source]
Compatibility wrapper returning only transformed values.
Some call sites expect a compute(…) API that returns the transformed values array directly. This method delegates to transform(…) and returns only the values component.
- _discrete_method(f, x, h)[source]
Discrete fractional Fourier transform using optimized FFT-based approach.
- compute_numerical(f, x, h=None)[source]
Numerical convenience API returning only values.
Maps to the discrete method for accuracy.
- _compute_transform_matrix(x, u, h)[source]
Compute the discrete fractional Fourier transform matrix.
- class hpfracc.algorithms.fractional_operator_methods.FractionalZTransform(alpha, *, method='spectral')[source]
Bases:
objectFractional Z-Transform implementation.
The fractional Z-transform is a generalization of the Z-transform that depends on a fractional parameter α. It’s useful for discrete-time systems and digital signal processing.
Z^α[f](z) = Σ_{n=0}^∞ f[n] z^(-αn)
- Parameters:
alpha (float | FractionalOrder)
method (str)
- __init__(alpha, *, method='spectral')[source]
Initialize fractional Z-transform calculator.
- Parameters:
alpha (float | FractionalOrder)
method (str)
- class hpfracc.algorithms.fractional_operator_methods.FractionalMellinTransform(alpha)[source]
Bases:
objectFractional Mellin Transform implementation.
The fractional Mellin transform is defined as: M_α[f](s) = ∫₀^∞ f(x) x^(s-1+α) dx
This transform is useful for: - Scale-invariant signal processing - Fractional differential equations - Image processing and pattern recognition - Quantum mechanics applications
- Parameters:
alpha (float | FractionalOrder)
- __init__(alpha)[source]
Initialize fractional Mellin transform calculator.
- Parameters:
alpha (float | FractionalOrder)
- transform(f, x, s, method='numerical')[source]
Compute fractional Mellin transform.
- Parameters:
- Returns:
Transform values
- Return type:
- inverse_transform(F, s, x, method='numerical')[source]
Compute inverse fractional Mellin transform.
- hpfracc.algorithms.fractional_operator_methods.fractional_laplacian(f, x, alpha, h=None, method='spectral')[source]
Convenience function for fractional Laplacian.
- hpfracc.algorithms.fractional_operator_methods.fractional_fourier_transform(f, x, alpha, h=None, method='auto')[source]
Convenience function for fractional Fourier transform.
- hpfracc.algorithms.fractional_operator_methods.fractional_z_transform(f, z, alpha, method='direct')[source]
Convenience function for fractional Z-transform.
- hpfracc.algorithms.fractional_operator_methods.fractional_mellin_transform(f, x, s, alpha, method='numerical')[source]
Convenience function for fractional Mellin transform.
- class hpfracc.algorithms.fractional_operator_methods.SpecialMethodsConfig(optimized=True, parallel=False)[source]
Bases:
objectConfiguration for special methods optimization.
- class hpfracc.algorithms.fractional_operator_methods.SpecialOptimizedWeylDerivative(alpha, config=None)[source]
Bases:
objectWeyl derivative optimized using Fractional Fourier Transform.
This implementation replaces the standard FFT convolution approach with Fractional Fourier Transform for better performance, especially for large arrays and specific alpha values.
- Parameters:
alpha (float | FractionalOrder)
config (SpecialMethodsConfig | None)
- __init__(alpha, config=None)[source]
Initialize special optimized Weyl derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
config (SpecialMethodsConfig | None)
- class hpfracc.algorithms.fractional_operator_methods.SpecialOptimizedMarchaudDerivative(alpha, config=None)[source]
Bases:
objectMarchaud derivative optimized using Fractional Z-Transform.
This implementation replaces the difference quotient convolution with Fractional Z-Transform for better performance on discrete signals.
- Parameters:
alpha (float | FractionalOrder)
config (SpecialMethodsConfig | None)
- __init__(alpha, config=None)[source]
Initialize special optimized Marchaud derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
config (SpecialMethodsConfig | None)
- compute(f, x, h=None, method='z_transform')[source]
Compute Marchaud derivative using optimized method.
- class hpfracc.algorithms.fractional_operator_methods.SpecialOptimizedReizFellerDerivative(alpha, config=None)[source]
Bases:
objectReiz-Feller derivative optimized using Fractional Laplacian.
This implementation uses the Fractional Laplacian for efficient computation of the Reiz-Feller derivative, especially for spectral methods and large-scale problems.
- Parameters:
alpha (float | FractionalOrder)
config (SpecialMethodsConfig | None)
- __init__(alpha, config=None)[source]
Initialize special optimized Reiz-Feller derivative calculator.
- Parameters:
alpha (float | FractionalOrder)
config (SpecialMethodsConfig | None)
- compute(f, x, h=None, method='laplacian')[source]
Compute Reiz-Feller derivative using optimized method.
- class hpfracc.algorithms.fractional_operator_methods.UnifiedSpecialMethods(config=None)[source]
Bases:
objectUnified interface for all special methods with automatic method selection.
This class provides a unified API that automatically selects the best special method based on the problem characteristics.
- Parameters:
config (SpecialMethodsConfig | None)
- __init__(config=None)[source]
Initialize unified special methods interface.
- Parameters:
config (SpecialMethodsConfig | None)
- compute_derivative(f, x, alpha, h, method=None, problem_type='general')[source]
Compute fractional derivative using optimal special method.
- Parameters:
- Returns:
Derivative values
- Return type:
- hpfracc.algorithms.fractional_operator_methods.special_optimized_weyl_derivative(f, x, alpha, h=None, method=None)[source]
Convenience function for special optimized Weyl derivative.
- hpfracc.algorithms.fractional_operator_methods.special_optimized_marchaud_derivative(f, x, alpha, h=None, method='z_transform')[source]
Convenience function for special optimized Marchaud derivative.
- hpfracc.algorithms.fractional_operator_methods.special_optimized_reiz_feller_derivative(f, x, alpha, h=None, method='laplacian')[source]
Convenience function for special optimized Reiz-Feller derivative.
Fractional Implementations
Fractional derivative and integral implementations.
This module provides concrete implementations of fractional derivatives and integrals that can be registered with the factory.
Performance Note (v2.1.0): - All implementations automatically benefit from intelligent backend selection - Backend selection happens in the underlying optimized algorithms - Small data (< 1K elements): Uses NumPy/Numba for minimal overhead - Large data (> 100K elements): Uses GPU when available for acceleration - Zero code changes required - optimization is automatic
Engine path (RL / Caputo / Grünwald–Letnikov):
Canonical numerical engines live in
hpfracc.algorithms.derivatives.Classes in this module (for example
CaputoDerivative) are thinBaseFractionalDerivativeadapters that delegate to those engines via_engine; there is no second implementation.
- class hpfracc.core.fractional_implementations._AlphaCompatibilityWrapper(fractional_order)[source]
Bases:
objectWrapper that makes alpha behave like both a float and FractionalOrder.
- Parameters:
fractional_order (FractionalOrder)
- __init__(fractional_order)[source]
- Parameters:
fractional_order (FractionalOrder)
- class hpfracc.core.fractional_implementations.RiemannLiouvilleDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeRiemann-Liouville fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.RiemannLiouville.- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.CaputoDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeCaputo fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.Caputo(single implementation path).- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.GrunwaldLetnikovDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeGrünwald–Letnikov fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.GrunwaldLetnikov.- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.CaputoFabrizioDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeCaputo-Fabrizio fractional derivative implementation.
Uses the novel implementation from algorithms.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.AtanganaBaleanuDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeAtangana-Baleanu fractional derivative implementation.
Uses the novel implementation from algorithms.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.FractionalLaplacian(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeFractional Laplacian operator implementation.
Uses the special implementation from algorithms.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.FractionalFourierTransform(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeFractional Fourier Transform implementation.
Uses the special implementation from algorithms.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.MillerRossDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeMiller-Ross fractional derivative implementation.
This is a generalization of the Riemann-Liouville derivative.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.WeylDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeWeyl fractional derivative implementation.
Uses the advanced implementation from algorithms with FFT convolution and parallel processing optimizations.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.MarchaudDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeMarchaud fractional derivative implementation.
Uses the advanced implementation from algorithms with difference quotient convolution and memory optimization.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.HadamardDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeHadamard fractional derivative implementation.
Uses the advanced implementation from algorithms with logarithmic kernels.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.ReizFellerDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeReiz-Feller fractional derivative implementation.
Uses the advanced implementation from algorithms with spectral methods.
- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- class hpfracc.core.fractional_implementations.RieszFisherOperator(alpha, **kwargs)[source]
Bases:
BaseFractionalDerivativeRiesz-Fisher fractional operator implementation.
The Riesz-Fisher operator is a combination of left and right fractional derivatives/integrals that is particularly useful in signal processing and image analysis. It’s defined as:
R^α f(x) = (1/2) * [D^α_+ f(x) + D^α_- f(x)]
where D^α_+ is the left-sided and D^α_- is the right-sided operator.
For α > 0: acts as a derivative For α < 0: acts as an integral For α = 0: acts as identity
- Parameters:
alpha (float | FractionalOrder)
- __init__(alpha, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
alpha (float | FractionalOrder)
- class hpfracc.core.fractional_implementations.AdomianDecompositionMethod(max_terms=10, tolerance=1e-06)[source]
Bases:
objectAdomian Decomposition Method for solving fractional differential equations.
This is an analytical method that decomposes the solution into a series of components that can be computed iteratively.
- solve(equation, initial_condition, domain, **kwargs)[source]
Solve a fractional differential equation using Adomian decomposition.
- Parameters:
- Returns:
Solution dictionary with components and convergence info
- Return type:
- compute_adomian_polynomials(nonlinear_term, u_series, order)[source]
Compute Adomian polynomials for nonlinear terms.
- hpfracc.core.fractional_implementations.create_fractional_integral(method, alpha, **kwargs)[source]
Create a fractional integral implementation.
- Parameters:
method (str) – Integration method (“RL” for Riemann-Liouville)
alpha (float | FractionalOrder) – Fractional order
**kwargs – Additional parameters
- Returns:
Fractional integral implementation
- hpfracc.core.fractional_implementations.create_riesz_fisher_operator(alpha, **kwargs)[source]
Create a Riesz-Fisher fractional operator.
- Parameters:
alpha (float | FractionalOrder) – Fractional order - α > 0: acts as a derivative - α < 0: acts as an integral - α = 0: acts as identity
**kwargs – Additional parameters
- Returns:
RieszFisherOperator instance
Core Derivatives
Base classes for fractional derivatives.
This module provides abstract base classes and common interfaces for implementing different fractional derivative definitions.
- class hpfracc.core.derivatives.BaseFractionalDerivative(order, definition=None, use_jax=False, use_numba=True)[source]
Bases:
ABCAbstract base class for fractional derivatives.
This class defines the common interface that all fractional derivative implementations must follow.
- Parameters:
order (float | FractionalOrder)
definition (FractionalDefinition | None)
use_jax (bool)
use_numba (bool)
- __init__(order, definition=None, use_jax=False, use_numba=True)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition (FractionalDefinition | None) – Mathematical definition
use_jax (bool) – Whether to use JAX optimizations
use_numba (bool) – Whether to use NUMBA optimizations
- abstractmethod compute(f, x, **kwargs)[source]
Compute the fractional derivative of function f at point(s) x.
- class hpfracc.core.derivatives.FractionalDerivativeOperator(alpha, definition_type=DefinitionType.CAPUTO, use_jax=False, use_numba=True)[source]
Bases:
objectHigh-level operator for fractional derivatives.
This class provides a unified interface for different fractional derivative definitions and implementations.
- Parameters:
alpha (float | FractionalOrder)
definition_type (str | DefinitionType)
use_jax (bool)
use_numba (bool)
- __init__(alpha, definition_type=DefinitionType.CAPUTO, use_jax=False, use_numba=True)[source]
Initialize fractional derivative operator.
- Parameters:
alpha (float | FractionalOrder) – Fractional order
definition_type (str | DefinitionType) – Type of fractional definition
use_jax (bool) – Whether to use JAX optimizations
use_numba (bool) – Whether to use NUMBA optimizations
- compute_numerical(f_values, x_values, **kwargs)[source]
Compute the fractional derivative numerically.
- set_implementation(implementation)[source]
Set the implementation for this operator.
- Parameters:
implementation (BaseFractionalDerivative)
- class hpfracc.core.derivatives.FractionalDerivativeFactory[source]
Bases:
objectFactory class for creating fractional derivative implementations.
This class provides a convenient way to create different types of fractional derivative implementations.
- register_implementation(definition_type, implementation_class)[source]
Register an implementation for a specific definition type.
- Parameters:
definition_type (DefinitionType) – Type of fractional definition
implementation_class (type) – Implementation class
- create(definition_type, alpha, use_jax=False, use_numba=True, **kwargs)[source]
Create a fractional derivative implementation.
- Parameters:
definition_type (str | DefinitionType) – Type of fractional definition
alpha (float | FractionalOrder) – Fractional order
use_jax (bool) – Whether to use JAX optimizations
use_numba (bool) – Whether to use NUMBA optimizations
**kwargs – Additional parameters for the implementation
- Returns:
Fractional derivative implementation
- Return type:
- class hpfracc.core.derivatives.FractionalDerivativeChain(derivatives)[source]
Bases:
objectChain of fractional derivatives for composition.
This class allows composing multiple fractional derivatives to create higher-order or mixed-order derivatives.
- Parameters:
derivatives (List[BaseFractionalDerivative])
- __init__(derivatives)[source]
Initialize derivative chain.
- Parameters:
derivatives (List[BaseFractionalDerivative]) – List of fractional derivatives to chain
- class hpfracc.core.derivatives.FractionalDerivativeProperties[source]
Bases:
objectProperties and utilities for fractional derivatives.
- static check_linearity(derivative, f, g, x, a=1.0, b=1.0, tolerance=1e-10)[source]
Check if a fractional derivative satisfies linearity.
- Parameters:
- Returns:
True if linearity is satisfied
- Return type:
- hpfracc.core.derivatives.create_fractional_derivative(definition_type, alpha, use_jax=False, use_numba=True, **kwargs)[source]
Create a fractional derivative implementation.
- Parameters:
definition_type (str | DefinitionType) – Type of fractional definition
alpha (float | FractionalOrder) – Fractional order
use_jax (bool) – Whether to use JAX optimizations
use_numba (bool) – Whether to use NUMBA optimizations
**kwargs – Additional parameters
- Returns:
Fractional derivative implementation
- Return type:
- hpfracc.core.derivatives.create_derivative_operator(definition_type, alpha, use_jax=False, use_numba=True)[source]
Create a fractional derivative operator.
- Parameters:
definition_type (str | DefinitionType) – Type of fractional definition
alpha (float | FractionalOrder) – Fractional order
use_jax (bool) – Whether to use JAX optimizations
use_numba (bool) – Whether to use NUMBA optimizations
- Returns:
Fractional derivative operator
- Return type:
- hpfracc.core.derivatives.caputo(f, alpha, **kwargs)[source]
Convenience function for Caputo derivative (canonical
Caputoengine).
Core Integrals
Fractional Integrals Module
Canonical integral path for the library: subclasses of FractionalIntegral here
are what hpfracc re-exports and what core workflows should use. For an
FFT-focused API with a different surface (method="fft", alpha= kwargs), see
hpfracc.algorithms.integral_methods — that module is legacy/alternate, not a
second copy of these quadrature-based classes. The hpfracc.core package loads
this submodule lazily (see core/__init__.py); prefer import hpfracc.core.integrals
when you only need integrals.
This module provides comprehensive implementations of fractional integrals including: - Riemann-Liouville fractional integrals - Caputo fractional integrals - Weyl fractional integrals - Hadamard fractional integrals - Numerical methods for fractional integration - Special cases and analytical solutions
- hpfracc.core.integrals._handle_integration_failure(method, x, error)[source]
Handle numerical integration failures without fabricating valid-looking values.
Returning NaN makes downstream quality checks catch failures instead of silently treating failures as valid zeros.
- class hpfracc.core.integrals.FractionalIntegral(order, method='RL')[source]
Bases:
objectBase class for fractional integral implementations.
This class provides the foundation for different types of fractional integrals and their numerical implementations.
- Parameters:
order (float | FractionalOrder)
method (str)
- __init__(order, method='RL')[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method (str) – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.core.integrals.RiemannLiouvilleIntegral(order)[source]
Bases:
FractionalIntegralRiemann-Liouville fractional integral.
The Riemann-Liouville fractional integral of order α is defined as:
I^α f(t) = (1/Γ(α)) ∫₀ᵗ (t-τ)^(α-1) f(τ) dτ
where Γ(α) is the gamma function.
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.core.integrals.CaputoIntegral(order)[source]
Bases:
FractionalIntegralCaputo fractional integral.
The Caputo fractional integral is related to the Riemann-Liouville integral and is often more suitable for initial value problems.
Supports all fractional orders α ≥ 0: - For 0 < α < 1: Equals Riemann-Liouville integral - For α ≥ 1: Uses decomposition I^α = I^n * I^β where α = n + β
Examples
>>> from hpfracc.core.integrals import CaputoIntegral >>> def f(x): return x**2 >>> # For 0 < α < 1 >>> integral_05 = CaputoIntegral(0.5) >>> result = integral_05(f, 1.0) >>> # For α ≥ 1 >>> integral_15 = CaputoIntegral(1.5) >>> result = integral_15(f, 1.0)
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.core.integrals.WeylIntegral(order)[source]
Bases:
FractionalIntegralWeyl fractional integral.
The Weyl fractional integral is suitable for functions defined on the entire real line and is particularly useful for periodic functions.
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.core.integrals.HadamardIntegral(order)[source]
Bases:
FractionalIntegralHadamard fractional integral.
The Hadamard fractional integral uses logarithmic kernels and is defined as: I^α_H f(t) = (1/Γ(α)) ∫₁ᵗ (ln(t/τ))^(α-1) f(τ) dτ/τ
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- hpfracc.core.integrals.create_fractional_integral(order, method='RL')[source]
Factory function to create fractional integral objects.
- Parameters:
order (float | FractionalOrder) – Fractional order
method (str) – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- Returns:
Appropriate fractional integral object
- Return type:
- hpfracc.core.integrals.analytical_fractional_integral(f_type, alpha, x)[source]
Compute analytical fractional integrals for common functions.
- hpfracc.core.integrals.trapezoidal_fractional_integral(f, x, alpha, method='RL')[source]
Compute fractional integral using trapezoidal rule.
- hpfracc.core.integrals.simpson_fractional_integral(f, x, alpha, method='RL')[source]
Compute fractional integral using Simpson’s rule.
- hpfracc.core.integrals.fractional_integral_properties(alpha)[source]
Return mathematical properties of fractional integrals.
- hpfracc.core.integrals.validate_fractional_integral(f, integral_result, x, alpha, method='RL')[source]
Validate fractional integral computation.
- class hpfracc.core.integrals.MillerRossIntegral(order)[source]
Bases:
FractionalIntegralMiller-Ross fractional integral.
The Miller-Ross fractional integral is defined as: I^α_MR f(t) = (1/Γ(α)) ∫₀ᵗ (t-τ)^(α-1) f(τ) dτ
This is similar to Riemann-Liouville but with different normalization.
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.core.integrals.MarchaudIntegral(order)[source]
Bases:
FractionalIntegralMarchaud fractional integral.
The Marchaud fractional integral is defined as: I^α_M f(t) = (1/Γ(α)) ∫₀ᵗ (t-τ)^(α-1) f(τ) dτ
This is a generalization that can handle more general kernels.
- Parameters:
order (float | FractionalOrder)
- __init__(order)[source]
Initialize fractional integral.
- Parameters:
order (float | FractionalOrder) – Fractional order (0 < α < 1 for most methods)
method – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
- class hpfracc.core.integrals.FractionalIntegralFactory[source]
Bases:
objectFactory class for creating fractional integral implementations.
This class provides a convenient way to create different types of fractional integral implementations.
- register_implementation(method, implementation_class)[source]
Register an implementation for a specific method.
- create(method, alpha, **kwargs)[source]
Create a fractional integral implementation.
- Parameters:
method (str) – Integration method
alpha (float | FractionalOrder) – Fractional order
**kwargs – Additional parameters for the implementation
- Returns:
Fractional integral implementation
- Return type:
- hpfracc.core.integrals.create_fractional_integral_factory(method, order, **kwargs)[source]
Create a fractional integral implementation using the factory.
- Parameters:
method (str) – Integration method (“RL”, “Caputo”, “Weyl”, “Hadamard”)
alpha – Fractional order
**kwargs – Additional parameters
order (float | FractionalOrder)
- Returns:
Fractional integral implementation
- Return type:
Machine Learning Module
Fractional Autograd Framework
Spectral fractional calculus utilities for ML integration.
This module provides a small, self-contained implementation that satisfies the expectations encoded in the extensive test-suite that accompanies the library. It focuses on three primary responsibilities:
Safe FFT utilities with backend selection and graceful fallbacks.
Spectral fractional derivative helpers that operate on PyTorch tensors while remaining differentiable with respect to both the input and the fractional order parameter
alpha.Thin neural-network wrappers (layers, learnable alpha parameters, and simple network scaffolding) that integrate the derivative into PyTorch models.
The goal is functional correctness and API compatibility rather than raw numerical performance; consequently many routines favour clarity and predictability over micro-optimisation. Every public utility is intentionally simple and well-behaved so that the surrounding tests can exercise a broad range of scenarios (different dtypes, devices, edge-cases, etc.).
Relation to ``FractionalNeuralNetwork``: that class (in hpfracc.ml.core) is a
separate multi-backend MLP whose optional fractional preprocessing uses discrete
Grünwald–Letnikov / L1-Caputo along a chosen axis (see hpfracc.ml.fractional_derivative_native).
This module does not subclass or call FractionalNeuralNetwork; SpectralFractionalNetwork
here stacks linear layers with spectral (FFT) fractional derivatives instead.
- hpfracc.ml.spectral_autograd.set_fft_backend(backend)[source]
Select the preferred FFT backend.
- Parameters:
backend (str) – One of the identifiers listed in
_ALLOWED_BACKENDS. The value is stored verbatim (after lower-casing) for retrieval viaget_fft_backend(), while internal helpers map it to the effective behaviour (Torch FFT, NumPy FFT, robust fallback, etc.).- Return type:
- hpfracc.ml.spectral_autograd.get_fft_backend()[source]
Return the currently configured FFT backend identifier.
- Return type:
- hpfracc.ml.spectral_autograd.safe_fft(x, dim=-1, norm='ortho', backend=None)[source]
FFT helper that honours the configured backend and preserves dtype.
- hpfracc.ml.spectral_autograd.robust_fft(x, dim=-1, norm='ortho')[source]
FFT with an automatic fallback to NumPy when PyTorch fails.
- hpfracc.ml.spectral_autograd.spectral_fractional_derivative(x, alpha, kernel_type='riesz', dim=-1, backend=None, **kwargs)[source]
Dispatcher for spectral fractional derivative. Selects backend based on input tensor type.
- hpfracc.ml.spectral_autograd.fractional_derivative(x, alpha, kernel_type='riesz', dim=-1, norm='ortho', backend=None, epsilon=1e-06)[source]
Public alias used throughout the tests.
- class hpfracc.ml.spectral_autograd.SpectralFractionalDerivative(alpha=0.5, dim=-1, backend=None, kernel_type='riesz', norm='ortho', epsilon=1e-06)[source]
Bases:
objectCallable wrapper that mimics the autograd
Function.applyinterface.- Parameters:
- __init__(alpha=0.5, dim=-1, backend=None, kernel_type='riesz', norm='ortho', epsilon=1e-06)[source]
Initialize the spectral fractional derivative operator.
- Parameters:
alpha (int | float | torch.Tensor) – Fractional order (default: 0.5)
dim (int | Sequence[int] | None) – Dimension along which to compute derivative (default: -1)
backend (str | None) – FFT backend to use (default: None, uses global setting)
kernel_type (str) – Type of fractional kernel (default: “riesz”)
norm (str) – FFT normalization mode (default: “ortho”)
epsilon (float) – Small value for numerical stability (default: 1e-6)
- class hpfracc.ml.spectral_autograd.SpectralFractionalFunction(alpha=0.5, dim=-1, backend=None, kernel_type='riesz', norm='ortho', epsilon=1e-06)[source]
Bases:
objectLegacy-style interface exposing explicit
forward/backwardhooks.- Parameters:
- __init__(alpha=0.5, dim=-1, backend=None, kernel_type='riesz', norm='ortho', epsilon=1e-06)[source]
Initialize the spectral fractional function.
- Parameters:
alpha (int | float | torch.Tensor) – Fractional order (default: 0.5)
dim (int | Sequence[int] | None) – Dimension along which to compute derivative (default: -1)
backend (str | None) – FFT backend to use (default: None, uses global setting)
kernel_type (str) – Type of fractional kernel (default: “riesz”)
norm (str) – FFT normalization mode (default: “ortho”)
epsilon (float) – Small value for numerical stability (default: 1e-6)
- class hpfracc.ml.spectral_autograd.SpectralFractionalLayer(*args, **kwargs)[source]
Bases:
ModuleApply a spectral fractional derivative inside a PyTorch layer.
- Parameters:
- class hpfracc.ml.spectral_autograd.SpectralFractionalNetwork(*args, **kwargs)[source]
Bases:
ModuleSimple network that incorporates spectral fractional layers.
Modes - unified (default): unified adaptive framework (input_dim, hidden_dims, output_dim). - model: model-specific/coverage style (input_size, hidden_sizes, output_size).
Backends - torch (default), jax, numba. If unavailable, CPU-safe fallbacks are used.
- Parameters:
input_size (Optional[int])
hidden_sizes (Optional[Sequence[int]])
output_size (Optional[int])
alpha (_Alpha)
input_dim (Optional[int])
hidden_dims (Optional[Sequence[int]])
output_dim (Optional[int])
kernel_type (str)
activation (Union[str, nn.Module, None])
learnable_alpha (bool)
backend (_Backend)
norm (str)
epsilon (float)
mode (str)
- __init__(input_size=None, hidden_sizes=None, output_size=None, alpha=0.5, *, input_dim=None, hidden_dims=None, output_dim=None, kernel_type='riesz', activation='relu', learnable_alpha=False, backend=None, norm='ortho', epsilon=1e-06, mode='unified', **kwargs)[source]
- class hpfracc.ml.spectral_autograd.BoundedAlphaParameter(*args, **kwargs)[source]
Bases:
ModuleLearnable scalar constrained to the open interval (alpha_min, alpha_max).
- Parameters:
- __init__(alpha=0.5, min_alpha=0.0, max_alpha=2.0, alpha_init=None, alpha_min=None, alpha_max=None, learnable_alpha=True)[source]
- hpfracc.ml.spectral_autograd.create_fractional_layer(input_size=None, *, alpha=0.5, kernel_type='riesz', dim=-1, norm='ortho', backend=None, epsilon=1e-06, learnable_alpha=False, activation=None)[source]
- hpfracc.ml.spectral_autograd.benchmark_backends(x=None, alpha=None, *, iterations=10, kernel_type='riesz', dim=-1, norm='ortho', epsilon=1e-06, test_size=100, num_iterations=None, backends=None)[source]
Crude benchmarking helper used in documentation and diagnostics.
- hpfracc.ml.spectral_autograd.original_get_fractional_kernel(alpha, n, kernel_type='riesz', epsilon=1e-06, dtype=None, device=None)[source]
- hpfracc.ml.spectral_autograd.original_spectral_fractional_derivative(x, alpha, kernel_type='riesz', dim=-1, norm='ortho', backend=None, epsilon=1e-06)[source]
- hpfracc.ml.spectral_autograd.OriginalSpectral
alias of
SpectralFractionalDerivative
- hpfracc.ml.spectral_autograd.OriginalSpectralFractionalLayer
alias of
SpectralFractionalLayer
- hpfracc.ml.spectral_autograd.OriginalSpectralFractionalNetwork
alias of
SpectralFractionalNetwork
- hpfracc.ml.spectral_autograd.original_create_fractional_layer(input_size=None, *, alpha=0.5, kernel_type='riesz', dim=-1, norm='ortho', backend=None, epsilon=1e-06, learnable_alpha=False, activation=None)
Stochastic Memory Sampling for Fractional Derivatives
This module implements unbiased estimators for fractional derivatives using stochastic sampling of the memory history instead of full computation.
- class hpfracc.ml.stochastic_memory_sampling.StochasticMemorySampler(alpha, method='importance', **kwargs)[source]
Bases:
objectBase class for stochastic memory sampling strategies.
- class hpfracc.ml.stochastic_memory_sampling.ImportanceSampler(alpha, tau=0.1, **kwargs)[source]
Bases:
StochasticMemorySamplerImportance sampling for fractional derivative memory.
Uses power-law distribution p(j) ∝ (n-j)^(-(1+α-τ)) where τ controls the tempering of the heavy tail.
- class hpfracc.ml.stochastic_memory_sampling.StratifiedSampler(alpha, recent_window=32, tail_ratio=0.3, **kwargs)[source]
Bases:
StochasticMemorySamplerStratified sampling with recent window and tail sampling.
Samples densely from recent history and sparsely from tail.
- class hpfracc.ml.stochastic_memory_sampling.ControlVariateSampler(alpha, baseline_window=16, **kwargs)[source]
Bases:
StochasticMemorySamplerControl variate sampling with deterministic baseline.
Uses a cheap deterministic approximation (e.g., short memory) as baseline and samples only the residual tail.
- compute_baseline(x)[source]
Compute deterministic baseline using recent window.
- Parameters:
x (torch.Tensor)
- Return type:
torch.Tensor
- hpfracc.ml.stochastic_memory_sampling.stochastic_fractional_derivative(x, alpha, k=64, method='importance', **sampler_kwargs)[source]
Public interface for stochastic fractional derivative. Fully differentiable via PyTorch Autograd.
- class hpfracc.ml.stochastic_memory_sampling.StochasticFractionalLayer(*args, **kwargs)[source]
Bases:
ModulePyTorch module for stochastic fractional derivatives.
- hpfracc.ml.stochastic_memory_sampling.create_stochastic_fractional_layer(alpha, k=64, method='importance', **kwargs)[source]
Convenience function for creating stochastic fractional layer.
- Parameters:
- Return type:
Probabilistic Fractional Orders Implementation
This module implements probabilistic fractional orders where the fractional order itself becomes a random variable, enabling uncertainty quantification and robust optimization.
- hpfracc.ml.probabilistic_fractional_orders.model(x, y)[source]
NumPyro model for Bayesian fractional order.
- hpfracc.ml.probabilistic_fractional_orders.guide(x, y)[source]
NumPyro guide for Bayesian fractional order.
- class hpfracc.ml.probabilistic_fractional_orders.ProbabilisticFractionalOrder(*args, **kwargs)[source]
Bases:
ModuleRepresents a fractional order alpha as a random variable.
- class hpfracc.ml.probabilistic_fractional_orders.ProbabilisticFractionalLayer(*args, **kwargs)[source]
Bases:
ModulePyTorch module for probabilistic fractional derivatives.
- sample_alpha(n_samples=1)[source]
Sample fractional orders from the distribution.
- Parameters:
n_samples (int)
- Return type:
torch.Tensor
- hpfracc.ml.probabilistic_fractional_orders.create_probabilistic_fractional_layer(**kwargs)[source]
Create a probabilistic fractional layer.
- Return type:
- hpfracc.ml.probabilistic_fractional_orders.create_normal_alpha_layer(mean, std, learnable=True, **kwargs)[source]
Create probabilistic fractional layer with normal distribution (torch-backed).
- Parameters:
- Return type:
- hpfracc.ml.probabilistic_fractional_orders.create_uniform_alpha_layer(low, high, learnable=False, **kwargs)[source]
Create probabilistic fractional layer with uniform distribution (torch-backed).
- Parameters:
- Return type:
- hpfracc.ml.probabilistic_fractional_orders.create_beta_alpha_layer(a, b, learnable=False, **kwargs)[source]
Create probabilistic fractional layer with beta distribution (torch-backed).
- Parameters:
- Return type:
Variance-aware training hooks for stochastic and probabilistic fractional calculus.
This module provides training utilities that monitor and control variance in stochastic fractional derivatives and probabilistic fractional orders.
- class hpfracc.ml.variance_aware_training.VarianceMetrics(mean, std, variance, coefficient_of_variation, sample_count, timestamp)[source]
Bases:
objectContainer for variance-related metrics.
- Parameters:
- class hpfracc.ml.variance_aware_training.VarianceMonitor(window_size=100, log_level='INFO')[source]
Bases:
objectMonitor variance in stochastic fractional derivatives.
- property current_metrics
Backward compatibility property for current metrics.
- get_metrics(name=None)[source]
Get current metrics for a component.
- Parameters:
name (str | None)
- Return type:
VarianceMetrics | None
- get_history(name)[source]
Get historical metrics for a component.
- Parameters:
name (str)
- Return type:
- class hpfracc.ml.variance_aware_training.StochasticSeedManager(base_seed=42)[source]
Bases:
objectManage random seeds for stochastic fractional derivatives.
- Parameters:
base_seed (int)
- class hpfracc.ml.variance_aware_training.VarianceAwareCallback(monitor, seed_manager, log_interval=10, variance_check_interval=5)[source]
Bases:
objectCallback for variance-aware training.
- Parameters:
monitor (VarianceMonitor)
seed_manager (StochasticSeedManager)
log_interval (int)
variance_check_interval (int)
- __init__(monitor, seed_manager, log_interval=10, variance_check_interval=5)[source]
- Parameters:
monitor (VarianceMonitor)
seed_manager (StochasticSeedManager)
log_interval (int)
variance_check_interval (int)
- on_epoch_begin(epoch, **kwargs)[source]
Called at the beginning of each epoch.
- Parameters:
epoch (int)
- on_batch_begin(batch_idx, **kwargs)[source]
Called at the beginning of each batch.
- Parameters:
batch_idx (int)
- class hpfracc.ml.variance_aware_training.AdaptiveSamplingManager(initial_k=32, min_k=8, max_k=256, variance_threshold=0.1)[source]
Bases:
objectAdaptively adjust sampling parameters based on variance.
- class hpfracc.ml.variance_aware_training.VarianceAwareTrainer(model, optimizer, loss_fn, variance_monitor=None, seed_manager=None, adaptive_sampling=None, callbacks=None)[source]
Bases:
objectEnhanced trainer with variance awareness for stochastic fractional calculus.
- Parameters:
model (torch.nn.Module)
optimizer (torch.optim.Optimizer)
loss_fn (torch.nn.Module)
variance_monitor (VarianceMonitor | None)
seed_manager (StochasticSeedManager | None)
adaptive_sampling (AdaptiveSamplingManager | None)
callbacks (List[VarianceAwareCallback] | None)
- __init__(model, optimizer, loss_fn, variance_monitor=None, seed_manager=None, adaptive_sampling=None, callbacks=None)[source]
- Parameters:
model (torch.nn.Module)
optimizer (torch.optim.Optimizer)
loss_fn (torch.nn.Module)
variance_monitor (VarianceMonitor | None)
seed_manager (StochasticSeedManager | None)
adaptive_sampling (AdaptiveSamplingManager | None)
callbacks (List[VarianceAwareCallback] | None)
GPU Optimization
GPU optimization utilities for fractional calculus computations.
This module provides GPU acceleration features including Automatic Mixed Precision (AMP), chunked FFT operations, and performance profiling for fractional calculus operations.
- class hpfracc.ml.gpu_optimization.PerformanceMetrics(operation, device, dtype, input_shape, execution_time, memory_used, memory_peak, throughput, timestamp)[source]
Bases:
objectContainer for performance metrics.
- Parameters:
- __init__(operation, device, dtype, input_shape, execution_time, memory_used, memory_peak, throughput, timestamp)
- class hpfracc.ml.gpu_optimization.GPUProfiler(device='cuda')[source]
Bases:
objectSimple profiler for GPU operations.
- Parameters:
device (str)
- metrics_history: List[PerformanceMetrics]
- current_metrics: Dict[str, PerformanceMetrics]
- class hpfracc.ml.gpu_optimization.ChunkedFFT(chunk_size=1024, overlap=0.1, window_type='hann')[source]
Bases:
objectChunked FFT operations for large sequences.
- fft_chunked(x, dim=-1)[source]
Perform chunked FFT on large sequences.
- Parameters:
x (torch.Tensor)
dim (int)
- Return type:
torch.Tensor
- ifft_chunked(x, dim=-1)[source]
Perform chunked IFFT on large sequences.
- Parameters:
x (torch.Tensor)
dim (int)
- Return type:
torch.Tensor
- forward(x, dim=-1)[source]
Alias for fft_chunked.
- Parameters:
x (torch.Tensor)
dim (int)
- Return type:
torch.Tensor
- class hpfracc.ml.gpu_optimization.AMPFractionalEngine(base_engine, use_amp=True, dtype=torch.float16)[source]
Bases:
objectAutomatic Mixed Precision wrapper for fractional engines.
- Parameters:
use_amp (bool)
dtype (torch.dtype)
- __init__(base_engine, use_amp=True, dtype=torch.float16)[source]
- Parameters:
use_amp (bool)
dtype (torch.dtype)
- forward(x, alpha, **kwargs)[source]
Forward pass with AMP support.
- Parameters:
x (torch.Tensor)
alpha (float)
- Return type:
torch.Tensor
- class hpfracc.ml.gpu_optimization.GPUOptimizedSpectralEngine(engine_type='fft', use_amp=True, chunk_size=1024, dtype=torch.float16)[source]
Bases:
objectGPU-optimized spectral engine with AMP and chunked FFT.
- forward(x, alpha)[source]
GPU-optimized forward pass.
- Parameters:
x (torch.Tensor)
alpha (float)
- Return type:
torch.Tensor
- _compute_spectral_transform(x, alpha)[source]
Compute spectral transform with GPU optimizations.
- Parameters:
x (torch.Tensor)
alpha (float)
- Return type:
torch.Tensor
- spectral_derivative(x, alpha)[source]
Compute spectral fractional derivative.
- Parameters:
x (torch.Tensor)
alpha (float)
- Return type:
torch.Tensor
- spectral_integral(x, alpha)[source]
Compute spectral fractional integral.
- Parameters:
x (torch.Tensor)
alpha (float)
- Return type:
torch.Tensor
- spectral_transform(x, alpha)[source]
Compute spectral transform (returns complex result).
- Parameters:
x (torch.Tensor)
alpha (float)
- Return type:
torch.Tensor
- class hpfracc.ml.gpu_optimization.GPUOptimizedStochasticSampler(base_sampler, use_amp=True, batch_size=1024)[source]
Bases:
objectGPU-optimized stochastic memory sampler.
- hpfracc.ml.gpu_optimization.gpu_optimization_context(use_amp=True, dtype=torch.float16)[source]
Context manager for GPU optimization.
- Parameters:
use_amp (bool)
dtype (torch.dtype)
- hpfracc.ml.gpu_optimization.benchmark_gpu_optimization()[source]
Benchmark GPU optimization performance.
- hpfracc.ml.gpu_optimization.create_gpu_optimized_components(use_amp=True, chunk_size=1024, dtype=torch.float16, enable_profiling=False)[source]
Factory function to create GPU-optimized components.
Backend Management
Backend Management System for Multi-Framework Support
This module provides unified interfaces for PyTorch, JAX, and NUMBA backends, enabling seamless switching between frameworks and automatic backend selection based on data type, hardware availability, and performance requirements.
- class hpfracc.ml.backends.BackendType(value)[source]
Bases:
EnumAvailable computation backends
- TORCH = 'torch'
- JAX = 'jax'
- NUMBA = 'numba'
- AUTO = 'auto'
- class hpfracc.ml.backends.BackendManager(preferred_backend=BackendType.AUTO, force_cpu=False, enable_jit=True, enable_gpu=True)[source]
Bases:
objectManages backend selection and provides unified interfaces
This class handles automatic backend selection based on: - Data type and size - Hardware availability (CPU/GPU) - Performance requirements - User preferences
- Parameters:
preferred_backend (BackendType)
force_cpu (bool)
enable_jit (bool)
enable_gpu (bool)
- __init__(preferred_backend=BackendType.AUTO, force_cpu=False, enable_jit=True, enable_gpu=True)[source]
- Parameters:
preferred_backend (BackendType)
force_cpu (bool)
enable_jit (bool)
enable_gpu (bool)
- _detect_available_backends()[source]
Detect which backends are available on the system
- Return type:
- _select_optimal_backend()[source]
Select the optimal backend based on preferences and availability
- Return type:
- _initialize_backend_configs()[source]
Initialize backend-specific configurations
- Return type:
Dict[BackendType, Dict[str, Any]]
- get_backend_config(backend=None)[source]
Get configuration for a specific backend
- Parameters:
backend (BackendType | None)
- Return type:
- switch_backend(backend)[source]
Switch to a different backend
- Parameters:
backend (BackendType)
- Return type:
- hpfracc.ml.backends.get_backend_manager()[source]
Get the global backend manager instance
- Return type:
- hpfracc.ml.backends.set_backend_manager(manager)[source]
Set the global backend manager instance
- Parameters:
manager (BackendManager)
- Return type:
None
- hpfracc.ml.backends.switch_backend(backend)[source]
Switch to a different backend
- Parameters:
backend (BackendType)
- Return type:
Tensor Operations
- hpfracc.ml.tensor_ops.get_tensor_ops(backend=None)[source]
Factory function to get the appropriate TensorOps implementation.
- Parameters:
backend (BackendType | None)
- Return type:
- class hpfracc.ml.tensor_ops.TensorOps[source]
Bases:
ABCAbstract base class for tensor operations across different backends.
- abstractmethod batch_norm(tensor, mean=None, var=None, weight=None, bias=None, training=False, momentum=0.1, eps=1e-05)[source]
- abstractmethod layer_norm(tensor, normalized_shape=None, weight=None, bias=None, eps=1e-05)[source]
- abstractmethod convolve(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)[source]
- hpfracc.ml.tensor_ops.create_tensor(data, *args, **kwargs)[source]
Wrapper to create tensor using active backend
- hpfracc.ml.tensor_ops.switch_backend(backend)[source]
Wrapper to switch backend
- Parameters:
backend (BackendType)
- Return type:
Core ML Components
Core Machine Learning Components for Fractional Calculus
This module provides the foundational ML classes that integrate fractional calculus with neural networks, attention mechanisms, loss functions, and AutoML capabilities.
- class hpfracc.ml.core.MLConfig(device='cpu', dtype='float32', fractional_order=0.5, use_gpu=False, batch_size=32, learning_rate=0.001, max_epochs=100, validation_split=0.2, early_stopping_patience=10, model_save_path='models/', log_interval=10, backend=BackendType.AUTO)[source]
Bases:
objectConfiguration for ML components
- Parameters:
- backend: BackendType = 'auto'
- __init__(device='cpu', dtype='float32', fractional_order=0.5, use_gpu=False, batch_size=32, learning_rate=0.001, max_epochs=100, validation_split=0.2, early_stopping_patience=10, model_save_path='models/', log_interval=10, backend=BackendType.AUTO)
- class hpfracc.ml.core.FractionalNeuralNetwork(input_size, hidden_sizes, output_size, fractional_order=0.5, activation='relu', dropout=0.1, config=None, backend=None, differentiable_fractional=True, fractional_axis=-1, fractional_step=None, fractional_t_grid=None)[source]
Bases:
objectNeural network with fractional calculus integration.
Tensor layout. The first linear layer expects the same shape you pass to
forward(typically(batch, input_size)). The fractional pre-processing step applies a discrete fractional operator alongfractional_axis(default-1, the feature / time-sample axis). Usefractional_axis=0only if your rows are samples along an index (unusual for(batch, features)).Grid. Native GL / Caputo L1 use a uniform step
h. Providefractional_step(scalarh), orfractional_t_grid(length matching the sampled axis; must be strictly increasing and evenly spaced), or omit both for the default gridt = linspace(0, 1, n)withh = 1/(n-1). Non-uniform grids are rejected in the native path; usedifferentiable_fractional=Falsefor the legacy NumPy operator (still uniformtimplied the same way).Supports PyTorch, JAX, and NUMBA backends.
- Parameters:
- __init__(input_size, hidden_sizes, output_size, fractional_order=0.5, activation='relu', dropout=0.1, config=None, backend=None, differentiable_fractional=True, fractional_axis=-1, fractional_step=None, fractional_t_grid=None)[source]
- fractional_forward(x, method='RL', *, axis=None, fractional_step=None, fractional_t_grid=None)[source]
Apply a discrete fractional operator along
axis(default:fractional_axis).Optional per-call overrides:
axis,fractional_step,fractional_t_grid(same semantics as constructor; per-call grid overrides instance grid).
- forward(x, use_fractional=True, method='RL', params=None, fractional_axis=None, fractional_step=None, fractional_t_grid=None)[source]
Forward pass through the network
- Parameters:
x (Any) – Input tensor
use_fractional (bool) – Whether to apply fractional derivatives
method (str) – Fractional derivative method if use_fractional is True
params (Dict[str, List[Any]] | None) – Optional dictionary of parameters {‘weights’: […], ‘biases’: […]} for functional execution (JAX support).
fractional_axis (int | None) – Optional override for the sampled axis (see class docstring).
fractional_step (float | None) – Optional uniform step
hfor the fractional grid.fractional_t_grid (ndarray | Sequence[float] | None) – Optional uniform 1D grid (length = size along sampled axis).
- Returns:
Network output
- Return type:
- class hpfracc.ml.core.FractionalAttention(d_model, n_heads=8, fractional_order=0.5, dropout=0.1, backend=None, differentiable_fractional=True, fractional_step=None, fractional_t_grid=None)[source]
Bases:
objectMulti-head attention with an optional discrete fractional map on the attended context.
After standard attention, the context tensor has shape
(batch, n_heads, seq_len, d_k). The fractional step runs along the sequence dimension (axis2), using the same native Grünwald–Letnikov / L1-Caputo machinery asFractionalNeuralNetworkwhendifferentiable_fractionalis True. Optionalfractional_stepandfractional_t_griddefine a uniform grid along that axis (seefractional_feature_map_native).The spectral FFT stack in
hpfracc.ml.spectral_autogradis separate; this class does not use it.Supports PyTorch, JAX, and NUMBA backends.
- Parameters:
- __init__(d_model, n_heads=8, fractional_order=0.5, dropout=0.1, backend=None, differentiable_fractional=True, fractional_step=None, fractional_t_grid=None)[source]
- class hpfracc.ml.core.FractionalLossFunction(fractional_order=0.5, backend=None)[source]
Bases:
objectBase class for loss functions with fractional calculus integration
This class provides a framework for creating loss functions that incorporate fractional derivatives to capture complex relationships. Supports multiple backends: PyTorch, JAX, and NUMBA.
- Parameters:
fractional_order (float)
backend (BackendType | None)
- __init__(fractional_order=0.5, backend=None)[source]
- Parameters:
fractional_order (float)
backend (BackendType | None)
- class hpfracc.ml.core.FractionalMSELoss(fractional_order=0.5, backend=None)[source]
Bases:
FractionalLossFunctionMean Squared Error loss with fractional calculus integration
- Parameters:
fractional_order (float)
backend (BackendType | None)
- class hpfracc.ml.core.FractionalCrossEntropyLoss(fractional_order=0.5, backend=None)[source]
Bases:
FractionalLossFunctionCross Entropy loss with fractional calculus integration
- Parameters:
fractional_order (float)
backend (BackendType | None)
- class hpfracc.ml.core.FractionalAutoML(config=None)[source]
Bases:
objectAutomated Machine Learning for fractional calculus parameters
This class provides automated optimization of fractional orders and other hyperparameters for optimal performance on specific tasks.
- Parameters:
config (MLConfig | None)
- optimize_fractional_order(model_class, train_data, val_data, param_ranges, n_trials=50, metric='accuracy')[source]
Optimize fractional order and other hyperparameters
- Parameters:
- Returns:
Dictionary with best parameters and optimization results
- Return type:
Neural Network Layers
Comprehensive Optimal Neural Network Layers with Fractional Calculus
This module provides the optimal hybrid implementation of all neural network layers with fractional calculus integration, combining the best performance, features, and stability from all implementations.
Performance: 7.56x faster than original implementation Stability: 100% success rate across all test cases Features: Complete layer type coverage with optimal architecture
Author: Davian R. Chin, Department of Biomedical Engineering, University of Reading Comprehensive Optimal Implementation: September 2025
- class hpfracc.ml.layers.LayerConfig(fractional_order=None, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=BackendType.AUTO, device=None, dtype=torch.float32, enable_caching=True, enable_benchmarking=False, performance_mode='balanced')[source]
Bases:
objectOptimal configuration for all fractional layers
- Parameters:
fractional_order (FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
backend (BackendType)
device (torch.device | None)
dtype (torch.dtype)
enable_caching (bool)
enable_benchmarking (bool)
performance_mode (str)
- fractional_order: FractionalOrder = None
- backend: BackendType = 'auto'
- __init__(fractional_order=None, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=BackendType.AUTO, device=None, dtype=torch.float32, enable_caching=True, enable_benchmarking=False, performance_mode='balanced')
- Parameters:
fractional_order (FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
backend (BackendType)
device (torch.device | None)
dtype (torch.dtype)
enable_caching (bool)
enable_benchmarking (bool)
performance_mode (str)
- Return type:
None
- class hpfracc.ml.layers.BackendManager[source]
Bases:
objectIntelligent backend management with workload-aware selection and performance learning
- class hpfracc.ml.layers.FractionalOps(config)[source]
Bases:
objectOptimal fractional operations with performance optimization
- Parameters:
config (LayerConfig)
- __init__(config)[source]
- Parameters:
config (LayerConfig)
- class hpfracc.ml.layers.FractionalLayerBase(*args, **kwargs)[source]
Bases:
Module,ABCOptimal base class for all fractional layers
- Parameters:
config (LayerConfig)
backend (BackendType | None)
- __init__(config, *, backend=None)[source]
- Parameters:
config (LayerConfig)
backend (BackendType | None)
- apply_fractional_derivative(x)[source]
Apply fractional derivative with optimal backend selection
- Parameters:
x (torch.Tensor)
- Return type:
torch.Tensor
- apply_activation(x)[source]
Apply activation function
- Parameters:
x (torch.Tensor)
- Return type:
torch.Tensor
- class hpfracc.ml.layers.FractionalConv1D(*args, **kwargs)[source]
Bases:
FractionalLayerBaseOptimal 1D Convolutional layer with fractional calculus integration
- Parameters:
in_channels (int)
out_channels (int)
kernel_size (int)
stride (int)
padding (int)
dilation (int)
groups (int)
bias (bool)
config (LayerConfig)
backend (BackendType | None)
- __init__(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, config=None, backend=None)[source]
- Parameters:
in_channels (int)
out_channels (int)
kernel_size (int)
stride (int)
padding (int)
dilation (int)
groups (int)
bias (bool)
config (LayerConfig)
backend (BackendType | None)
- class hpfracc.ml.layers.FractionalConv2D(*args, **kwargs)[source]
Bases:
FractionalLayerBaseOptimal 2D Convolutional layer with fractional calculus integration
- Parameters:
- class hpfracc.ml.layers.FractionalLinear(*args, **kwargs)[source]
Bases:
FractionalLayerBaseOptimal Linear layer with fractional calculus integration
- Parameters:
in_features (int)
out_features (int)
bias (bool)
config (LayerConfig)
backend (BackendType | None)
- __init__(in_features, out_features, bias=True, config=None, backend=None)[source]
- Parameters:
in_features (int)
out_features (int)
bias (bool)
config (LayerConfig)
backend (BackendType | None)
- class hpfracc.ml.layers.FractionalLSTM(*args, **kwargs)[source]
Bases:
FractionalLayerBaseMinimal LSTM layer wrapper satisfying tests.
- Parameters:
input_size (int)
hidden_size (int)
num_layers (int)
bidirectional (bool)
dropout (float)
bias (bool)
config (LayerConfig)
backend (BackendType | None)
fractional_order (float)
- __init__(input_size, hidden_size, num_layers=1, bidirectional=False, dropout=0.0, bias=True, config=None, backend=None, fractional_order=0.5)[source]
- Parameters:
input_size (int)
hidden_size (int)
num_layers (int)
bidirectional (bool)
dropout (float)
bias (bool)
config (LayerConfig)
backend (BackendType | None)
fractional_order (float)
- class hpfracc.ml.layers.FractionalTransformer(*args, **kwargs)[source]
Bases:
FractionalLayerBaseMinimal Transformer wrapper satisfying tests.
- Parameters:
- class hpfracc.ml.layers.FractionalPooling(*args, **kwargs)[source]
Bases:
FractionalLayerBaseMinimal pooling wrapper satisfying tests.
- Parameters:
- class hpfracc.ml.layers.FractionalBatchNorm1d(*args, **kwargs)[source]
Bases:
FractionalLayerBaseMinimal BatchNorm1d wrapper satisfying tests.
- Parameters:
num_features (int)
eps (float)
momentum (float)
affine (bool)
track_running_stats (bool)
config (LayerConfig)
backend (BackendType | None)
- __init__(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, config=None, backend=None)[source]
- Parameters:
num_features (int)
eps (float)
momentum (float)
affine (bool)
track_running_stats (bool)
config (LayerConfig)
backend (BackendType | None)
- class hpfracc.ml.layers.FractionalDropout(*args, **kwargs)[source]
Bases:
FractionalLayerBaseMinimal Dropout wrapper satisfying tests.
- Parameters:
p (float)
inplace (bool)
config (LayerConfig)
backend (BackendType | None)
- __init__(p=0.5, inplace=False, config=None, backend=None)[source]
- Parameters:
p (float)
inplace (bool)
config (LayerConfig)
backend (BackendType | None)
- class hpfracc.ml.layers.FractionalLayerNorm(*args, **kwargs)[source]
Bases:
FractionalLayerBaseMinimal LayerNorm wrapper satisfying tests.
- Parameters:
eps (float)
elementwise_affine (bool)
config (LayerConfig)
backend (BackendType | None)
- __init__(normalized_shape, eps=1e-05, elementwise_affine=True, config=None, backend=None)[source]
- Parameters:
eps (float)
elementwise_affine (bool)
config (LayerConfig)
backend (BackendType | None)
- class hpfracc.ml.layers.FractionalMaxUnpool1d(*args, **kwargs)[source]
Bases:
FractionalLayerBase- Parameters:
kernel_size (int)
stride (int)
padding (int)
config (LayerConfig)
backend (BackendType | None)
- __init__(kernel_size, stride=1, padding=0, output_size=None, config=None, backend=None)[source]
- Parameters:
kernel_size (int)
stride (int)
padding (int)
config (LayerConfig)
backend (BackendType | None)
- class hpfracc.ml.layers.FractionalMaxUnpool2d(*args, **kwargs)[source]
Bases:
FractionalLayerBase- Parameters:
- class hpfracc.ml.layers.FractionalMaxUnpool3d(*args, **kwargs)[source]
Bases:
FractionalLayerBase- Parameters:
Graph Neural Networks
- class hpfracc.ml.gnn_layers.FractionalGraphConv(in_channels, out_channels, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None)[source]
Bases:
TorchFractionalGNNMixin,JaxFractionalGNNMixin,NumbaFractionalGNNMixin,BaseFractionalGNNLayerFractional Graph Convolutional Layer. Combines backend-specific implementations via mixins.
- Parameters:
in_channels (int)
out_channels (int)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
bias (bool)
backend (BackendType | None)
- class hpfracc.ml.gnn_layers.FractionalGraphAttention(in_channels, out_channels, heads=8, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None, **kwargs)[source]
Bases:
TorchFractionalGNNMixin,JaxFractionalGNNMixin,NumbaFractionalGNNMixin,BaseFractionalGNNLayerFractional Graph Attention Layer.
- Parameters:
- class hpfracc.ml.gnn_layers.FractionalGraphPooling(in_channels=64, pooling_ratio=0.5, out_channels=None, fractional_order=0.5, method='RL', use_fractional=True, backend=None, **kwargs)[source]
Bases:
TorchFractionalGNNMixin,JaxFractionalGNNMixin,NumbaFractionalGNNMixin,BaseFractionalGNNLayerFractional Graph Pooling Layer. Reduces graph size while preserving fractional properties.
- Parameters:
in_channels (int)
pooling_ratio (float)
out_channels (int | None)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
backend (BackendType | None)
- __init__(in_channels=64, pooling_ratio=0.5, out_channels=None, fractional_order=0.5, method='RL', use_fractional=True, backend=None, **kwargs)[source]
- Parameters:
in_channels (int)
pooling_ratio (float)
out_channels (int | None)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
backend (BackendType | None)
- class hpfracc.ml.gnn_layers.BaseFractionalGNNLayer(in_channels, out_channels, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None)[source]
Bases:
ABCBase class for fractional GNN layers
- Parameters:
in_channels (int)
out_channels (int)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
bias (bool)
backend (BackendType | None)
- __init__(in_channels, out_channels, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None)[source]
- Parameters:
in_channels (int)
out_channels (int)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
bias (bool)
backend (BackendType | None)
Complete Fractional Graph Neural Network Architectures
This module provides complete GNN architectures with fractional calculus integration, including various model types and configurations for different graph learning tasks.
- class hpfracc.ml.gnn_models.BaseFractionalGNN(input_dim, hidden_dim, output_dim, num_layers=3, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
ABCBase class for fractional Graph Neural Networks
This abstract class defines the interface for all fractional GNN models, ensuring consistency across different architectures and backends.
- Parameters:
- __init__(input_dim, hidden_dim, output_dim, num_layers=3, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
- class hpfracc.ml.gnn_models.FractionalGCN(input_dim, hidden_dim, output_dim, num_layers=3, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional Graph Convolutional Network
A GNN architecture that uses fractional graph convolution layers for node classification, graph classification, and other tasks.
- Parameters:
- class hpfracc.ml.gnn_models.FractionalGAT(input_dim, hidden_dim, output_dim, num_layers=3, num_heads=8, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional Graph Attention Network
A GNN architecture that uses fractional graph attention layers for enhanced graph representation learning.
- Parameters:
- __init__(input_dim, hidden_dim, output_dim, num_layers=3, num_heads=8, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
- class hpfracc.ml.gnn_models.FractionalGraphSAGE(input_dim, hidden_dim, output_dim, num_layers=3, num_samples=25, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional GraphSAGE Network
A GNN architecture that uses fractional graph convolution layers with neighbor sampling for scalable graph learning.
- Parameters:
- __init__(input_dim, hidden_dim, output_dim, num_layers=3, num_samples=25, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
- class hpfracc.ml.gnn_models.FractionalGraphUNet(input_dim, hidden_dim, output_dim, num_layers=4, pooling_ratio=0.5, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional Graph U-Net
A hierarchical GNN architecture that uses fractional calculus for multi-scale graph representation learning.
- Parameters:
- __init__(input_dim, hidden_dim, output_dim, num_layers=4, pooling_ratio=0.5, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
- class hpfracc.ml.gnn_models.FractionalGNNFactory[source]
Bases:
objectFactory class for creating fractional GNN models
This class provides a convenient interface for creating different types of fractional GNN architectures with consistent configurations.
Loss Functions
Loss Functions with Fractional Calculus Integration
This module provides loss functions that incorporate fractional derivatives, enabling enhanced training dynamics and potentially better convergence. Supports multiple backends: PyTorch, JAX, and NUMBA.
- class hpfracc.ml.losses.FractionalLossFunction(fractional_order=0.5, method='RL', backend=None)[source]
Bases:
ABCBase class for loss functions with fractional calculus integration
This class provides a framework for loss functions that can apply fractional derivatives to predictions before computing the loss. Supports multiple backends: PyTorch, JAX, and NUMBA.
- Parameters:
fractional_order (float)
method (str)
backend (BackendType | None)
- __init__(fractional_order=0.5, method='RL', backend=None)[source]
- Parameters:
fractional_order (float)
method (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalMSELoss(fractional_order=0.5, method='RL', reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionMean Squared Error loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalCrossEntropyLoss(fractional_order=0.5, method='RL', reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionCross Entropy loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalHuberLoss(fractional_order=0.5, method='RL', delta=1.0, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionHuber loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
delta (float)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalSmoothL1Loss(fractional_order=0.5, method='RL', beta=1.0, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionSmooth L1 loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
beta (float)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalKLDivLoss(fractional_order=0.5, method='RL', reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionKL Divergence loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalBCELoss(fractional_order=0.5, method='RL', reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionBinary Cross Entropy loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalNLLLoss(fractional_order=0.5, method='RL', reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionNegative Log Likelihood loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalPoissonNLLLoss(fractional_order=0.5, method='RL', log_input=True, full=False, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionPoisson Negative Log Likelihood loss with fractional calculus integration
- Parameters:
- class hpfracc.ml.losses.FractionalCosineEmbeddingLoss(fractional_order=0.5, method='RL', margin=0.0, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionCosine Embedding loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
margin (float)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalMarginRankingLoss(fractional_order=0.5, method='RL', margin=0.0, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionMargin Ranking loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
margin (float)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalMultiMarginLoss(fractional_order=0.5, method='RL', p=1, margin=1.0, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionMulti Margin loss with fractional calculus integration
- Parameters:
- class hpfracc.ml.losses.FractionalTripletMarginLoss(fractional_order=0.5, method='RL', margin=1.0, p=2.0, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionTriplet Margin loss with fractional calculus integration
- Parameters:
- class hpfracc.ml.losses.FractionalCTCLoss(fractional_order=0.5, method='RL', blank=0, reduction='mean', backend=None)[source]
Bases:
FractionalLossFunctionConnectionist Temporal Classification loss with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
blank (int)
reduction (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalCustomLoss(loss_fn, fractional_order=0.5, method='RL', backend=None)[source]
Bases:
FractionalLossFunctionCustom loss function with fractional calculus integration
- Parameters:
fractional_order (float)
method (str)
backend (BackendType | None)
- __init__(loss_fn, fractional_order=0.5, method='RL', backend=None)[source]
- Parameters:
fractional_order (float)
method (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalCombinedLoss(loss_functions, weights=None, fractional_order=0.5, method='RL', backend=None)[source]
Bases:
FractionalLossFunctionCombined loss function with fractional calculus integration
- Parameters:
loss_functions (list)
weights (list)
fractional_order (float)
method (str)
backend (BackendType | None)
- class hpfracc.ml.losses.FractionalSDEMSELoss(num_samples=10, reduction='mean', fractional_order=0.5, method='RL', backend=None)[source]
Bases:
FractionalLossFunctionMSE loss for fractional SDE trajectory matching.
Computes L2 distance between predicted and target trajectories, accounting for stochastic variability through multiple samples.
- Parameters:
num_samples (int)
reduction (str)
fractional_order (float)
method (str)
backend (BackendType | None)
- __init__(num_samples=10, reduction='mean', fractional_order=0.5, method='RL', backend=None)[source]
Initialize SDE MSE loss.
- Parameters:
num_samples (int) – Number of stochastic samples to average over
reduction (str) – Reduction type (“mean”, “sum”, “none”)
fractional_order (float) – Fractional order for loss computation
method (str) – Fractional derivative method
backend (BackendType | None) – Computation backend
- class hpfracc.ml.losses.FractionalKLDivergenceLoss(eps=1e-08, fractional_order=0.5, method='RL', backend=None)[source]
Bases:
FractionalLossFunctionKL divergence loss for matching SDE distributions.
Measures divergence between predicted and target distributions in stochastic dynamics.
- Parameters:
eps (float)
fractional_order (float)
method (str)
backend (BackendType | None)
- __init__(eps=1e-08, fractional_order=0.5, method='RL', backend=None)[source]
Initialize KL divergence loss.
- Parameters:
eps (float) – Small constant for numerical stability
fractional_order (float) – Fractional order for loss computation
method (str) – Fractional derivative method
backend (BackendType | None) – Computation backend
- class hpfracc.ml.losses.FractionalPathwiseLoss(uncertainty_weight=1.0, fractional_order=0.5, method='RL', backend=None)[source]
Bases:
FractionalLossFunctionPathwise loss with uncertainty weighting.
Weighted loss that accounts for prediction uncertainty in stochastic trajectories.
- Parameters:
uncertainty_weight (float)
fractional_order (float)
method (str)
backend (BackendType | None)
- __init__(uncertainty_weight=1.0, fractional_order=0.5, method='RL', backend=None)[source]
Initialize pathwise loss.
- Parameters:
uncertainty_weight (float) – Weight for uncertainty term
fractional_order (float) – Fractional order for loss computation
method (str) – Fractional derivative method
backend (BackendType | None) – Computation backend
- class hpfracc.ml.losses.FractionalMomentMatchingLoss(moments=None, weights=None, fractional_order=0.5, method='RL', backend=None)[source]
Bases:
FractionalLossFunctionMoment matching loss for SDE distributions.
Matches statistical moments (mean, variance, etc.) between predicted and target distributions.
- Parameters:
moments (list)
weights (list)
fractional_order (float)
method (str)
backend (BackendType | None)
- __init__(moments=None, weights=None, fractional_order=0.5, method='RL', backend=None)[source]
Initialize moment matching loss.
- Parameters:
moments (list) – List of moments to match (default: [1, 2] for mean, variance)
weights (list) – Weights for each moment
fractional_order (float) – Fractional order for loss computation
method (str) – Fractional derivative method
backend (BackendType | None) – Computation backend
Optimizers
Optimized Fractional Calculus Optimizers
This module provides highly optimized fractional calculus optimizers that:
Inherit from
torch.optim.Optimizerfor standard PyTorch compatibility.Implement “Fractional Gradient Descent” logic where gradients are pre-processed with fractional calculus operators before the standard update step.
Author: Davian R. Chin
- class hpfracc.ml.optimized_optimizers.FractionalOptimizer(*args, **kwargs)[source]
Bases:
OptimizerBase class for fractional optimizers. intercepts gradients and applies fractional derivatives before the update step.
- class hpfracc.ml.optimized_optimizers.OptimizedFractionalSGD(*args, **kwargs)[source]
Bases:
FractionalOptimizerOptimized SGD with fractional calculus integration.
- __init__(params, lr=0.001, momentum=0, dampening=0, weight_decay=0, nesterov=False, fractional_order=0.5, method='RL', use_fractional=True)[source]
- step(closure=None)
- class hpfracc.ml.optimized_optimizers.OptimizedFractionalAdam(*args, **kwargs)[source]
Bases:
FractionalOptimizerOptimized Adam with fractional calculus integration.
- __init__(params, lr=0.001, betas=(0.9, 0.999), eps=1e-08, weight_decay=0, amsgrad=False, fractional_order=0.5, method='RL', use_fractional=True)[source]
- step(closure=None)
- class hpfracc.ml.optimized_optimizers.OptimizedFractionalRMSprop(*args, **kwargs)[source]
Bases:
FractionalOptimizerOptimized RMSprop with fractional calculus integration.
- __init__(params, lr=0.01, alpha=0.99, eps=1e-08, weight_decay=0, momentum=0, centered=False, fractional_order=0.5, method='RL', use_fractional=True)[source]
- step(closure=None)
- hpfracc.ml.optimized_optimizers.OptimizedBaseOptimizer
alias of
FractionalOptimizer
Detailed API Documentation
Core Definitions
FractionalOrder
- class hpfracc.FractionalOrder(alpha, validate=True, method=None)[source]
Bases:
objectRepresents a fractional order with validation and properties.
The fractional order α can be any real number, but typically we consider 0 < α < 2 for most applications.
- Parameters:
alpha (float | FractionalOrder)
validate (bool)
method (str)
- __init__(alpha, validate=True, method=None)[source]
Initialize fractional order.
- Parameters:
alpha (float | FractionalOrder) – Fractional order value
validate (bool) – Whether to validate the order range
method (str)
- _validate()[source]
Validate the fractional order.
- property value: float
Get the fractional order value.
- property is_integer: bool
Check if the order is an integer.
- property is_fractional: bool
Check if the order is fractional (not integer).
- property integer_part: int
Get the integer part of the fractional order.
- property fractional_part: float
Get the fractional part of the fractional order.
Core Fractional Calculus Methods
Canonical engines (algorithms.derivatives)
These are the single dispatching implementations used library-wide.
- class hpfracc.algorithms.derivatives.RiemannLiouville(order, backend='auto')[source]
Bases:
UnifiedFractionalOperatorRiemann-Liouville fractional derivative. D^α f(t) = (d/dt)^n I^(n-α) f(t)
- Parameters:
order (float | FractionalOrder)
backend (str)
- __init__(order, backend='auto')[source]
- Parameters:
order (float | FractionalOrder)
backend (str)
- class hpfracc.algorithms.derivatives.Caputo(order, backend='auto')[source]
Bases:
UnifiedFractionalOperatorCaputo fractional derivative. D^α f(t) = I^(n-α) f^(n)(t)
- Parameters:
order (float | FractionalOrder)
backend (str)
- class hpfracc.algorithms.derivatives.GrunwaldLetnikov(order, backend='auto')[source]
Bases:
UnifiedFractionalOperatorGrünwald-Letnikov fractional derivative.
- Parameters:
order (float | FractionalOrder)
backend (str)
OptimizedRiemannLiouville
- hpfracc.OptimizedRiemannLiouville
alias of
RiemannLiouville
OptimizedCaputo
- hpfracc.OptimizedCaputo
alias of
Caputo
OptimizedGrunwaldLetnikov
- hpfracc.OptimizedGrunwaldLetnikov
alias of
GrunwaldLetnikov
RiemannLiouvilleDerivative
- class hpfracc.core.fractional_implementations.RiemannLiouvilleDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeRiemann-Liouville fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.RiemannLiouville.- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- compute(f, x, h=None, **kwargs)[source]
Compute the Riemann-Liouville fractional derivative.
CaputoDerivative
- class hpfracc.core.fractional_implementations.CaputoDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeCaputo fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.Caputo(single implementation path).- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- compute(f, x, h=None, **kwargs)[source]
Compute the Caputo fractional derivative.
GrunwaldLetnikovDerivative
- class hpfracc.core.fractional_implementations.GrunwaldLetnikovDerivative(order, **kwargs)[source]
Bases:
BaseFractionalDerivativeGrünwald–Letnikov fractional derivative — adapter over the canonical engine
hpfracc.algorithms.derivatives.GrunwaldLetnikov.- Parameters:
order (float | FractionalOrder)
- __init__(order, **kwargs)[source]
Initialize fractional derivative.
- Parameters:
order (float | FractionalOrder) – Fractional order
definition – Mathematical definition
use_jax – Whether to use JAX optimizations
use_numba – Whether to use NUMBA optimizations
- compute(f, x, h=None, **kwargs)[source]
Compute the Grunwald-Letnikov fractional derivative.
Public package adapters (hpfracc.*)
hpfracc.RiemannLiouville, hpfracc.Caputo, and hpfracc.GrunwaldLetnikov are the same
*Derivative classes as above (re-exported at package scope).
- hpfracc.RiemannLiouville
alias of
RiemannLiouvilleDerivative
- hpfracc.Caputo
alias of
CaputoDerivative
- hpfracc.GrunwaldLetnikov
alias of
GrunwaldLetnikovDerivative
Backend Management
BackendType
BackendManager
- class hpfracc.ml.backends.BackendManager(preferred_backend=BackendType.AUTO, force_cpu=False, enable_jit=True, enable_gpu=True)[source]
Bases:
objectManages backend selection and provides unified interfaces
This class handles automatic backend selection based on: - Data type and size - Hardware availability (CPU/GPU) - Performance requirements - User preferences
- Parameters:
preferred_backend (BackendType)
force_cpu (bool)
enable_jit (bool)
enable_gpu (bool)
- __init__(preferred_backend=BackendType.AUTO, force_cpu=False, enable_jit=True, enable_gpu=True)[source]
- Parameters:
preferred_backend (BackendType)
force_cpu (bool)
enable_jit (bool)
enable_gpu (bool)
- _detect_available_backends()[source]
Detect which backends are available on the system
- Return type:
- _select_optimal_backend()[source]
Select the optimal backend based on preferences and availability
- Return type:
- _initialize_backend_configs()[source]
Initialize backend-specific configurations
- Return type:
Dict[BackendType, Dict[str, Any]]
- get_backend_config(backend=None)[source]
Get configuration for a specific backend
- Parameters:
backend (BackendType | None)
- Return type:
- switch_backend(backend)[source]
Switch to a different backend
- Parameters:
backend (BackendType)
- Return type:
- create_tensor(data, **kwargs)[source]
Create a tensor in the active backend
- to_device(tensor, device=None)[source]
Move tensor to specified device
Tensor Operations
TensorOps
- class hpfracc.ml.tensor_ops.TensorOps[source]
Bases:
ABCAbstract base class for tensor operations across different backends.
- abstractmethod no_grad()[source]
- Return type:
- abstractmethod arange(start, end, step=1, **kwargs)[source]
- abstractmethod linspace(start, end, num, **kwargs)[source]
- abstractmethod stack(tensors, dim=0)[source]
- abstractmethod cat(tensors, dim=0)[source]
- abstractmethod reshape(tensor, shape)[source]
- abstractmethod repeat(tensor, repeats, dim=0)[source]
- abstractmethod tile(tensor, reps)[source]
- abstractmethod clip(tensor, min_val, max_val)[source]
- abstractmethod gather(tensor, dim, index)[source]
- abstractmethod squeeze(tensor, dim=None)[source]
- abstractmethod mean(tensor, dim=None, keepdims=False, axis=None)[source]
- abstractmethod sum(tensor, dim=None, keepdims=False, axis=None)[source]
- abstractmethod max(tensor, dim=None, keepdims=False, axis=None)[source]
- abstractmethod min(tensor, dim=None, keepdims=False, axis=None)[source]
- abstractmethod where(condition, x, y)[source]
- abstractmethod norm(tensor, dim=None, axis=None, keepdims=False, ord=2)[source]
- abstractmethod dropout(tensor, p=0.5, training=True, **kwargs)[source]
- abstractmethod batch_norm(tensor, mean=None, var=None, weight=None, bias=None, training=False, momentum=0.1, eps=1e-05)[source]
- abstractmethod layer_norm(tensor, normalized_shape=None, weight=None, bias=None, eps=1e-05)[source]
- abstractmethod convolve(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1)[source]
- abstractmethod max_pool(input, kernel_size, stride=None, padding=0)[source]
- abstractmethod avg_pool(input, kernel_size, stride=None, padding=0)[source]
- abstractmethod backward(tensor, grad_tensor=None)[source]
- abstractmethod random_normal(shape, mean=0.0, std=1.0, **kwargs)[source]
- abstractmethod random_uniform(shape, min_val=0.0, max_val=1.0, **kwargs)[source]
- abstractmethod mse_loss(input, target, reduction='mean')[source]
- abstractmethod cross_entropy_loss(input, target, reduction='mean', **kwargs)[source]
- abstractmethod to_device(tensor, device)[source]
- abstractmethod fft(tensor, n=None, dim=-1, norm=None)[source]
- abstractmethod ifft(tensor, n=None, dim=-1, norm=None)[source]
- abstractmethod slice(tensor, start, end, dim=0)[source]
- clear_cache()[source]
Neural Networks
FractionalNeuralNetwork
- class hpfracc.ml.core.FractionalNeuralNetwork(input_size, hidden_sizes, output_size, fractional_order=0.5, activation='relu', dropout=0.1, config=None, backend=None, differentiable_fractional=True, fractional_axis=-1, fractional_step=None, fractional_t_grid=None)[source]
Bases:
objectNeural network with fractional calculus integration.
Tensor layout. The first linear layer expects the same shape you pass to
forward(typically(batch, input_size)). The fractional pre-processing step applies a discrete fractional operator alongfractional_axis(default-1, the feature / time-sample axis). Usefractional_axis=0only if your rows are samples along an index (unusual for(batch, features)).Grid. Native GL / Caputo L1 use a uniform step
h. Providefractional_step(scalarh), orfractional_t_grid(length matching the sampled axis; must be strictly increasing and evenly spaced), or omit both for the default gridt = linspace(0, 1, n)withh = 1/(n-1). Non-uniform grids are rejected in the native path; usedifferentiable_fractional=Falsefor the legacy NumPy operator (still uniformtimplied the same way).Supports PyTorch, JAX, and NUMBA backends.
- Parameters:
- __init__(input_size, hidden_sizes, output_size, fractional_order=0.5, activation='relu', dropout=0.1, config=None, backend=None, differentiable_fractional=True, fractional_axis=-1, fractional_step=None, fractional_t_grid=None)[source]
- eval()[source]
Set evaluation mode
- parameters()[source]
Return list of learnable parameters for compatibility with optimizers/tests
- _build_network()[source]
Build the network architecture using the current backend
- _initialize_weights()[source]
Initialize network weights using Xavier initialization
- fractional_forward(x, method='RL', *, axis=None, fractional_step=None, fractional_t_grid=None)[source]
Apply a discrete fractional operator along
axis(default:fractional_axis).Optional per-call overrides:
axis,fractional_step,fractional_t_grid(same semantics as constructor; per-call grid overrides instance grid).
- forward(x, use_fractional=True, method='RL', params=None, fractional_axis=None, fractional_step=None, fractional_t_grid=None)[source]
Forward pass through the network
- Parameters:
x (Any) – Input tensor
use_fractional (bool) – Whether to apply fractional derivatives
method (str) – Fractional derivative method if use_fractional is True
params (Dict[str, List[Any]] | None) – Optional dictionary of parameters {‘weights’: […], ‘biases’: […]} for functional execution (JAX support).
fractional_axis (int | None) – Optional override for the sampled axis (see class docstring).
fractional_step (float | None) – Optional uniform step
hfor the fractional grid.fractional_t_grid (ndarray | Sequence[float] | None) – Optional uniform 1D grid (length = size along sampled axis).
- Returns:
Network output
- Return type:
- _apply_activation(x)[source]
Apply activation function based on backend
Graph Neural Networks
FractionalGCN
- class hpfracc.ml.gnn_models.FractionalGCN(input_dim, hidden_dim, output_dim, num_layers=3, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional Graph Convolutional Network
A GNN architecture that uses fractional graph convolution layers for node classification, graph classification, and other tasks.
- Parameters:
- _build_network()[source]
Build the GCN architecture
- forward(x, edge_index, batch=None, **kwargs)[source]
Forward pass through the fractional GCN
FractionalGAT
- class hpfracc.ml.gnn_models.FractionalGAT(input_dim, hidden_dim, output_dim, num_layers=3, num_heads=8, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional Graph Attention Network
A GNN architecture that uses fractional graph attention layers for enhanced graph representation learning.
- Parameters:
- __init__(input_dim, hidden_dim, output_dim, num_layers=3, num_heads=8, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
- _build_network()[source]
Build the GAT architecture
- forward(x, edge_index, batch=None, **kwargs)[source]
Forward pass through the fractional GAT
FractionalGraphSAGE
- class hpfracc.ml.gnn_models.FractionalGraphSAGE(input_dim, hidden_dim, output_dim, num_layers=3, num_samples=25, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional GraphSAGE Network
A GNN architecture that uses fractional graph convolution layers with neighbor sampling for scalable graph learning.
- Parameters:
- __init__(input_dim, hidden_dim, output_dim, num_layers=3, num_samples=25, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
- _build_network()[source]
Build the GraphSAGE architecture
- forward(x, edge_index, batch=None, **kwargs)[source]
Forward pass through the fractional GraphSAGE
FractionalGraphUNet
- class hpfracc.ml.gnn_models.FractionalGraphUNet(input_dim, hidden_dim, output_dim, num_layers=4, pooling_ratio=0.5, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
Bases:
BaseFractionalGNNFractional Graph U-Net
A hierarchical GNN architecture that uses fractional calculus for multi-scale graph representation learning.
- Parameters:
- __init__(input_dim, hidden_dim, output_dim, num_layers=4, pooling_ratio=0.5, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, backend=None)[source]
- _build_network()[source]
Build the Graph U-Net architecture
- forward(x, edge_index, batch=None, **kwargs)[source]
Forward pass through the fractional Graph U-Net
GNN Factory
- class hpfracc.ml.gnn_models.FractionalGNNFactory[source]
Bases:
objectFactory class for creating fractional GNN models
This class provides a convenient interface for creating different types of fractional GNN architectures with consistent configurations.
- static create_model(model_type, input_dim, hidden_dim, output_dim, **kwargs)[source]
Create a fractional GNN model of the specified type
- Parameters:
- Returns:
Configured fractional GNN model
- Return type:
GNN Layers
FractionalGraphConv
- class hpfracc.ml.gnn_layers.FractionalGraphConv(in_channels, out_channels, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None)[source]
Bases:
TorchFractionalGNNMixin,JaxFractionalGNNMixin,NumbaFractionalGNNMixin,BaseFractionalGNNLayerFractional Graph Convolutional Layer. Combines backend-specific implementations via mixins.
- Parameters:
in_channels (int)
out_channels (int)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
bias (bool)
backend (BackendType | None)
- _initialize_layer()[source]
Initialize the graph convolution layer
- forward(x, edge_index, edge_weight=None, **kwargs)[source]
Forward pass through the layer
- eval()[source]
- parameters()[source]
- named_parameters()[source]
- state_dict()[source]
- load_state_dict(state_dict)[source]
FractionalGraphAttention
- class hpfracc.ml.gnn_layers.FractionalGraphAttention(in_channels, out_channels, heads=8, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None, **kwargs)[source]
Bases:
TorchFractionalGNNMixin,JaxFractionalGNNMixin,NumbaFractionalGNNMixin,BaseFractionalGNNLayerFractional Graph Attention Layer.
- Parameters:
- __init__(in_channels, out_channels, heads=8, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None, **kwargs)[source]
FractionalGraphPooling
- class hpfracc.ml.gnn_layers.FractionalGraphPooling(in_channels=64, pooling_ratio=0.5, out_channels=None, fractional_order=0.5, method='RL', use_fractional=True, backend=None, **kwargs)[source]
Bases:
TorchFractionalGNNMixin,JaxFractionalGNNMixin,NumbaFractionalGNNMixin,BaseFractionalGNNLayerFractional Graph Pooling Layer. Reduces graph size while preserving fractional properties.
- Parameters:
in_channels (int)
pooling_ratio (float)
out_channels (int | None)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
backend (BackendType | None)
- __init__(in_channels=64, pooling_ratio=0.5, out_channels=None, fractional_order=0.5, method='RL', use_fractional=True, backend=None, **kwargs)[source]
- Parameters:
in_channels (int)
pooling_ratio (float)
out_channels (int | None)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
backend (BackendType | None)
- forward(x, edge_index, batch=None, **kwargs)[source]
Identity pooling on features; always returns
(x, edge_index, batch).Graph coarsening (changing node count / edges) is not implemented yet. Returning a triple keeps
FractionalGraphUNetand call sites consistent.
BaseFractionalGNNLayer
- class hpfracc.ml.gnn_layers.BaseFractionalGNNLayer(in_channels, out_channels, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None)[source]
Bases:
ABCBase class for fractional GNN layers
- Parameters:
in_channels (int)
out_channels (int)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
bias (bool)
backend (BackendType | None)
- __init__(in_channels, out_channels, fractional_order=0.5, method='RL', use_fractional=True, activation='relu', dropout=0.1, bias=True, backend=None)[source]
- Parameters:
in_channels (int)
out_channels (int)
fractional_order (float | FractionalOrder)
method (str)
use_fractional (bool)
activation (str)
dropout (float)
bias (bool)
backend (BackendType | None)
- abstractmethod forward(x, edge_index, edge_weight=None, **kwargs)[source]
Forward pass through the layer
Attention Mechanisms
FractionalAttention
- class hpfracc.ml.core.FractionalAttention(d_model, n_heads=8, fractional_order=0.5, dropout=0.1, backend=None, differentiable_fractional=True, fractional_step=None, fractional_t_grid=None)[source]
Bases:
objectMulti-head attention with an optional discrete fractional map on the attended context.
After standard attention, the context tensor has shape
(batch, n_heads, seq_len, d_k). The fractional step runs along the sequence dimension (axis2), using the same native Grünwald–Letnikov / L1-Caputo machinery asFractionalNeuralNetworkwhendifferentiable_fractionalis True. Optionalfractional_stepandfractional_t_griddefine a uniform grid along that axis (seefractional_feature_map_native).The spectral FFT stack in
hpfracc.ml.spectral_autogradis separate; this class does not use it.Supports PyTorch, JAX, and NUMBA backends.
- Parameters:
- __init__(d_model, n_heads=8, fractional_order=0.5, dropout=0.1, backend=None, differentiable_fractional=True, fractional_step=None, fractional_t_grid=None)[source]
- eval()[source]
- _initialize_weights()[source]
Initialize attention weights
- fractional_attention(q, k, v, method='RL')[source]
Compute attention with fractional derivatives
- Parameters:
- Returns:
Attention output with fractional calculus applied
- Return type:
Fractional Autograd Framework (spectral)
Spectral fractional operators live in hpfracc.ml.spectral_autograd. They use FFT-based
kernels and are not the same class as FractionalNeuralNetwork (which applies a
discrete Grünwald–Letnikov / L1-Caputo map along a chosen axis; see
hpfracc.ml.core.FractionalNeuralNetwork and hpfracc.ml.fractional_derivative_native).
SpectralFractionalDerivative
- class hpfracc.ml.spectral_autograd.SpectralFractionalDerivative(alpha=0.5, dim=-1, backend=None, kernel_type='riesz', norm='ortho', epsilon=1e-06)[source]
Bases:
objectCallable wrapper that mimics the autograd
Function.applyinterface.- Parameters:
- __init__(alpha=0.5, dim=-1, backend=None, kernel_type='riesz', norm='ortho', epsilon=1e-06)[source]
Initialize the spectral fractional derivative operator.
- Parameters:
alpha (int | float | torch.Tensor) – Fractional order (default: 0.5)
dim (int | Sequence[int] | None) – Dimension along which to compute derivative (default: -1)
backend (str | None) – FFT backend to use (default: None, uses global setting)
kernel_type (str) – Type of fractional kernel (default: “riesz”)
norm (str) – FFT normalization mode (default: “ortho”)
epsilon (float) – Small value for numerical stability (default: 1e-6)
- static apply(x, alpha, kernel_type='riesz', dim=-1, norm='ortho', backend=None, epsilon=1e-06)[source]
Static method for backward compatibility.
SpectralFractionalLayer
- class hpfracc.ml.spectral_autograd.SpectralFractionalLayer(*args, **kwargs)[source]
Bases:
ModuleApply a spectral fractional derivative inside a PyTorch layer.
- Parameters:
- __init__(input_size=None, output_size=None, alpha=0.5, kernel_type='riesz', dim=-1, norm='ortho', backend=None, epsilon=1e-06, learnable_alpha=False, **kwargs)[source]
- property alpha: float
- property learnable: bool
- forward(x)[source]
- Parameters:
x (torch.Tensor)
- Return type:
torch.Tensor
SpectralFractionalNetwork
- class hpfracc.ml.spectral_autograd.SpectralFractionalNetwork(*args, **kwargs)[source]
Bases:
ModuleSimple network that incorporates spectral fractional layers.
Modes - unified (default): unified adaptive framework (input_dim, hidden_dims, output_dim). - model: model-specific/coverage style (input_size, hidden_sizes, output_size).
Backends - torch (default), jax, numba. If unavailable, CPU-safe fallbacks are used.
- Parameters:
input_size (Optional[int])
hidden_sizes (Optional[Sequence[int]])
output_size (Optional[int])
alpha (_Alpha)
input_dim (Optional[int])
hidden_dims (Optional[Sequence[int]])
output_dim (Optional[int])
kernel_type (str)
activation (Union[str, nn.Module, None])
learnable_alpha (bool)
backend (_Backend)
norm (str)
epsilon (float)
mode (str)
- __init__(input_size=None, hidden_sizes=None, output_size=None, alpha=0.5, *, input_dim=None, hidden_dims=None, output_dim=None, kernel_type='riesz', activation='relu', learnable_alpha=False, backend=None, norm='ortho', epsilon=1e-06, mode='unified', **kwargs)[source]
- forward(x)[source]
- Parameters:
x (torch.Tensor)
- Return type:
torch.Tensor
StochasticMemorySampler
- class hpfracc.ml.stochastic_memory_sampling.StochasticMemorySampler(alpha, method='importance', **kwargs)[source]
Bases:
objectBase class for stochastic memory sampling strategies.
- sample_indices(n, k)[source]
Sample k indices from history of length n.
- compute_weights(indices, n)[source]
Compute importance weights for sampled indices.
- Parameters:
indices (torch.Tensor)
n (int)
- Return type:
torch.Tensor
- estimate_derivative(x, indices, weights)[source]
Estimate fractional derivative using sampled indices and weights.
- Parameters:
x (torch.Tensor)
indices (torch.Tensor)
weights (torch.Tensor)
- Return type:
torch.Tensor
ProbabilisticFractionalLayer
- class hpfracc.ml.probabilistic_fractional_orders.ProbabilisticFractionalLayer(*args, **kwargs)[source]
Bases:
ModulePyTorch module for probabilistic fractional derivatives.
- __init__(**kwargs)[source]
- forward(x)[source]
Forward pass.
- Parameters:
x (torch.Tensor)
- Return type:
torch.Tensor
- sample_alpha(n_samples=1)[source]
Sample fractional orders from the distribution.
- Parameters:
n_samples (int)
- Return type:
torch.Tensor
- get_alpha_statistics()[source]
Get statistics of the fractional order distribution.
- to(device)[source]
Move layer parameters to specified device (PyTorch compatibility)
VarianceAwareTrainer
- class hpfracc.ml.variance_aware_training.VarianceAwareTrainer(model, optimizer, loss_fn, variance_monitor=None, seed_manager=None, adaptive_sampling=None, callbacks=None)[source]
Bases:
objectEnhanced trainer with variance awareness for stochastic fractional calculus.
- Parameters:
model (torch.nn.Module)
optimizer (torch.optim.Optimizer)
loss_fn (torch.nn.Module)
variance_monitor (VarianceMonitor | None)
seed_manager (StochasticSeedManager | None)
adaptive_sampling (AdaptiveSamplingManager | None)
callbacks (List[VarianceAwareCallback] | None)
- __init__(model, optimizer, loss_fn, variance_monitor=None, seed_manager=None, adaptive_sampling=None, callbacks=None)[source]
- Parameters:
model (torch.nn.Module)
optimizer (torch.optim.Optimizer)
loss_fn (torch.nn.Module)
variance_monitor (VarianceMonitor | None)
seed_manager (StochasticSeedManager | None)
adaptive_sampling (AdaptiveSamplingManager | None)
callbacks (List[VarianceAwareCallback] | None)
- _register_hooks()[source]
Register forward hooks to monitor variance.
- train_epoch(dataloader, epoch=0)[source]
Train for one epoch with variance monitoring.
- train(dataloader, num_epochs)[source]
Train for multiple epochs.
- get_variance_summary()[source]
Get current variance summary.
GPU Optimization
GPUProfiler
- class hpfracc.ml.gpu_optimization.GPUProfiler(device='cuda')[source]
Bases:
objectSimple profiler for GPU operations.
- Parameters:
device (str)
- metrics_history: List[PerformanceMetrics]
- current_metrics: Dict[str, PerformanceMetrics]
- end_timer(input_tensor, output_tensor=None)[source]
End timing and record metrics.
- Parameters:
input_tensor (torch.Tensor)
output_tensor (torch.Tensor | None)
- clear_history()[source]
Clear metrics history.
ChunkedFFT
- class hpfracc.ml.gpu_optimization.ChunkedFFT(chunk_size=1024, overlap=0.1, window_type='hann')[source]
Bases:
objectChunked FFT operations for large sequences.
- __init__(chunk_size=1024, overlap=0.1, window_type='hann')[source]
- fft_chunked(x, dim=-1)[source]
Perform chunked FFT on large sequences.
- Parameters:
x (torch.Tensor)
dim (int)
- Return type:
torch.Tensor
- ifft_chunked(x, dim=-1)[source]
Perform chunked IFFT on large sequences.
- Parameters:
x (torch.Tensor)
dim (int)
- Return type:
torch.Tensor
- forward(x, dim=-1)[source]
Alias for fft_chunked.
- Parameters:
x (torch.Tensor)
dim (int)
- Return type:
torch.Tensor
AMPFractionalEngine
- class hpfracc.ml.gpu_optimization.AMPFractionalEngine(base_engine, use_amp=True, dtype=torch.float16)[source]
Bases:
objectAutomatic Mixed Precision wrapper for fractional engines.
- Parameters:
use_amp (bool)
dtype (torch.dtype)
- __init__(base_engine, use_amp=True, dtype=torch.float16)[source]
- Parameters:
use_amp (bool)
dtype (torch.dtype)
- forward(x, alpha, **kwargs)[source]
Forward pass with AMP support.
- Parameters:
x (torch.Tensor)
alpha (float)
- Return type:
torch.Tensor
- backward(grad_output, **kwargs)[source]
Backward pass with AMP support.
- Parameters:
grad_output (torch.Tensor)
- Return type:
torch.Tensor
- update_scaler()[source]
Update the GradScaler after an optimization step.
Utility entry points (no duplicate autodoc stubs)
Fractional-derivative factories live under hpfracc.core.derivatives and the algorithm engines
(hpfracc.algorithms.derivatives), both covered by .. automodule:: sections earlier in this page.
Backend helpers (hpfracc.ml.backends) and tensor factories (hpfracc.ml.tensor_ops) are likewise
indexed once via their automodule blocks to avoid duplicate Sphinx inventory entries.
Model Utilities
Note
Model creation utilities are available through the main ML module.
See hpfracc.ml for factory functions and model constructors.
Configuration
Default Parameters
- hpfracc.core.definitions.DEFAULT_FRACTIONAL_ORDER = 0.5
- hpfracc.ml.backends.DEFAULT_BACKEND = BackendType.JAX
- hpfracc.ml.tensor_ops.DEFAULT_DTYPE = 'float32'
Supported Backends
- hpfracc.ml.backends.SUPPORTED_BACKENDS = [BackendType.TORCH, BackendType.JAX, BackendType.NUMBA]
Supported GNN Types
- hpfracc.ml.gnn_models.SUPPORTED_GNN_TYPES = ['gcn', 'gat', 'sage', 'unet']
Supported Derivative Methods
- hpfracc.core.derivatives.SUPPORTED_METHODS = ['RL', 'Caputo', 'GL']
Type Information
The library uses Python type hints throughout. Key types include:
FractionalOrder: Core class for representing fractional orders
BackendType: Enum for backend selection (TORCH, JAX, NUMBA, AUTO)
TensorType: Union of numpy arrays, PyTorch tensors, and JAX arrays
See the source code for detailed type annotations.
Usage Examples
Basic Fractional Calculus
from hpfracc.core.definitions import FractionalOrder
from hpfracc.core.derivatives import create_fractional_derivative
import numpy as np
# Create fractional derivative
alpha = FractionalOrder(0.5)
deriv = create_fractional_derivative(alpha, method="RL")
# Test function
def f(x):
return np.exp(-x)
# Compute derivative
x = np.linspace(0, 1, 100)
result = deriv(f, x)
Neural Network Usage
from hpfracc.ml import FractionalNeuralNetwork
from hpfracc.ml.backends import BackendType
import numpy as np
# Create model (input_size = feature dimension per row)
model = FractionalNeuralNetwork(
input_size=10,
hidden_sizes=[32, 16],
output_size=1,
fractional_order=0.5,
backend=BackendType.JAX,
fractional_axis=-1,
)
# Forward pass: (batch, input_size); fractional step along last axis by default
X = np.random.randn(100, 10).astype(np.float32)
output = model(X, use_fractional=True, method="RL")
GNN Usage
from hpfracc.ml import FractionalGNNFactory
from hpfracc.core.definitions import FractionalOrder
from hpfracc.ml.backends import BackendType
import numpy as np
# Create GNN
gnn = FractionalGNNFactory.create_model(
model_type='gcn',
input_dim=16,
hidden_dim=32,
output_dim=4,
fractional_order=FractionalOrder(0.5),
backend=BackendType.TORCH
)
# Graph data
node_features = np.random.randn(50, 16)
edge_index = np.random.randint(0, 50, (2, 100))
# Forward pass
output = gnn.forward(node_features, edge_index)
Backend Management
from hpfracc.ml.backends import BackendManager, BackendType
# Check available backends
available = BackendManager.get_available_backends()
print(f"Available: {available}")
# Set backend
BackendManager.set_backend(BackendType.JAX)
# Get current backend
current = BackendManager.get_current_backend()
print(f"Current: {current}")
Spectral fractional (FFT) usage
import torch
from hpfracc.ml.spectral_autograd import spectral_fractional_derivative
from hpfracc.ml.stochastic_memory_sampling import StochasticMemorySampler
from hpfracc.ml.probabilistic_fractional_orders import ProbabilisticFractionalLayer
# Spectral fractional derivative along last dimension (PyTorch)
x = torch.randn(32, 128, requires_grad=True)
y = spectral_fractional_derivative(x, alpha=0.5, dim=-1, kernel_type="riesz")
# Stochastic memory sampler
sampler = StochasticMemorySampler(k=32, method="importance")
# Probabilistic fractional layer
prob_layer = ProbabilisticFractionalLayer(mean=0.5, std=0.1, learnable=True)
loss = y.sum()
loss.backward()
print(f"Gradients computed: {x.grad is not None}")
GPU Optimization
import torch
from hpfracc.ml.gpu_optimization import GPUProfiler, ChunkedFFT, gpu_optimization_context
# GPU profiling
profiler = GPUProfiler()
with profiler:
# Your GPU operations here
x = torch.randn(1000, 1000, device='cuda')
result = torch.fft.fft(x)
# Chunked FFT for large sequences
chunked_fft = ChunkedFFT(chunk_size=1024)
x = torch.randn(10000, device='cuda')
result = chunked_fft.forward(x)
# GPU optimization context
with gpu_optimization_context(use_amp=True, chunk_size=512):
# Your fractional calculus operations here
pass
Performance Considerations
Backend Selection
PyTorch: Best for GPU acceleration and complex neural networks
JAX: Best for functional programming and TPU acceleration
NUMBA: Best for CPU optimization and lightweight deployment
Memory Management
Use batch processing for large datasets
Clear intermediate tensors when possible
Monitor memory usage with large models
Computation Optimization
Choose appropriate fractional derivative method for your use case
Use JIT compilation when available
Profile performance with different backends
Troubleshooting
Common Issues
Backend not available
# Check available backends
from hpfracc.ml.backends import BackendManager
available = BackendManager.get_available_backends()
print(f"Available: {available}")
Invalid fractional order
# Valid orders: -1 < order < 2
from hpfracc.core.definitions import FractionalOrder
try:
order = FractionalOrder(0.5) # Valid
except ValueError as e:
print(f"Error: {e}")
Tensor shape mismatch
# Ensure input dimensions match model expectations
model = FractionalNeuralNetwork(input_size=10, hidden_sizes=[8], output_size=1)
X = np.random.randn(100, 10) # Correct shape (batch, input_size)
# X = np.random.randn(100, 5) # Wrong shape - will fail
Debugging Tips
Enable debug logging
Check tensor shapes and types
Verify backend compatibility
Test with small datasets first
For more detailed examples, see Tutorials & Examples.