Skip to main content

PhilTorch $\Huge \overset{🔥}{\Phi}$

PyPI version Python versions Build CPU wheels Build CUDA wheels codecov Documentation OpenReview License: MIT

PhilTorch provides differentiable, time-domain linear digital filters for PyTorch.

  • Differentiate through filter coefficients, inputs, and initial states with PyTorch autograd.
  • Process batched signals and filters whose coefficients vary at every time step.
  • Compute in the time domain without FFTs, through a pure functional API with no stateful objects.
  • Run on native CPU, CUDA, and MPS kernels.

The documentation, with the API reference of every module, is at philtorch.readthedocs.io.

News

Installation

PhilTorch requires its compiled philtorch._C extension; there is no pure-PyTorch fallback when the extension is missing.

Route Platforms Kernels Python PyTorch
PyPI wheel Linux x86_64 (manylinux_2_28), macOS 14+ arm64, Windows AMD64 CPU, plus float32 scalar-LTI MPS on macOS (macOS 15+ from PyTorch 2.15) 3.11 on, the Pythons its PyTorch minor has wheels for The latest stable minor at publication, which each wheel requires (e.g. torch == 2.14.*); listed in the release notes
CUDA wheel, from the PhilTorch index Linux x86_64 (manylinux_2_28) CPU and CUDA 3.11 on, the Pythons its PyTorch minor has wheels for One build per PyTorch minor and CUDA version; see CUDA wheels
Source build Any platform with a C++ toolchain CPU, MPS, or CUDA 3.11+ 2.4 or newer

PyPI wheels

python -m pip install philtorch

Wheels contain no CUDA kernels. Each wheel is built against one PyTorch minor release and requires it (e.g. torch == 2.14.*), because the compiled extension does not load with other minor releases. pip therefore installs that PyTorch minor with PhilTorch, replacing a different one if needed. If a different minor is installed anyway, for example with --no-deps, import philtorch raises an ImportError naming the minor it needs. For CUDA on Linux, use the CUDA wheels; for another PyTorch minor release, build from source.

CUDA wheels

Linux wheels with CUDA kernels are published on a separate package index rather than PyPI. Wheel tags don't record which PyTorch and CUDA build a wheel is for, and PyPI rejects the local version labels that do (e.g. +torch2.14.1.cu132). There is one index per PyTorch minor and CUDA version that PyTorch publishes wheels for. Install PyTorch first, then install PhilTorch from the index that matches it:

python -m pip install torch==2.14.1 --index-url https://download.pytorch.org/whl/cu132
python -m pip install philtorch --index-url https://yoyolicoris.github.io/philtorch/whl/torch2.14-cu132/

To find the matching index for an installed PyTorch, run python -c "import torch; print(torch.__version__, torch.version.cuda)". For example, 2.14.1+cu132 13.2 matches whl/torch2.14-cu132/. On Linux, pip install torch from PyPI installs PyTorch's default CUDA build; the command above shows which.

PyTorch CUDA 12.9 CUDA 13.0 CUDA 13.2 CUDA 13.4
2.15 — — whl/torch2.15-cu132/ whl/torch2.15-cu134/
2.14 — whl/torch2.14-cu130/ whl/torch2.14-cu132/ —
2.13 whl/torch2.13-cu129/ whl/torch2.13-cu130/ whl/torch2.13-cu132/ —

The index URLs are relative to https://yoyolicoris.github.io/philtorch/, which lists every index, including those for earlier releases.

  • Requirements: a Python the table above lists for the wheel's PyTorch, an NVIDIA GPU with compute capability 7.5, 8.x, 9.0, 10.x or 12.x, and a driver that supports the wheel's CUDA version.
  • PyTorch: each wheel requires its PyTorch minor (e.g. torch == 2.14.*), so pip keeps the PyTorch you installed.
  • Mismatches: import philtorch raises an ImportError if the installed PyTorch is a different minor release, has no CUDA support, or uses a different CUDA major version. It only warns if the CUDA minor version differs.
  • Use --index-url, not --extra-index-url: with PyPI also searched, pip installs PyPI's CPU-only wheel whenever it is a newer release than the CUDA build in the index, without warning.

Source builds

Install PyTorch first with the PyTorch installation selector, then build PhilTorch against it without build isolation:

python -m pip install "setuptools>=77.0.3" "setuptools_scm>=8" wheel
python -m pip install --no-binary=philtorch --no-build-isolation philtorch

The build compiles a CUDA extension when torch.cuda.is_available() is true and CUDA_HOME is set, and a CPU-only C++ extension otherwise. On a headless build server with no visible GPU, set PHILTORCH_FORCE_CUDA=1 to compile the CUDA extension anyway. In that case the installed PyTorch must be a CUDA build, and TORCH_CUDA_ARCH_LIST must also be set to the target architectures (e.g. TORCH_CUDA_ARCH_LIST="8.0 8.6"), because there is no GPU to infer them from. On macOS, when the installed PyTorch supports OpenMP, the build also needs Homebrew llvm and libomp, unless PHILTORCH_DISABLE_OPENMP=1 is set.

For an editable install from Git:

git clone --branch main https://github.com/yoyolicoris/philtorch.git
cd philtorch
python -m pip install torch  # Choose the correct CPU or CUDA build first.
python -m pip install "setuptools>=77.0.3" "setuptools_scm>=8" wheel
python -m pip install --editable . --no-build-isolation

Package versions come from Git tags through setuptools_scm, so keep the tag metadata when building from a checkout.

Development version

Development builds from dev are published to TestPyPI:

python -m pip install -i https://test.pypi.org/simple/ philtorch

Quickstart

Filtering with SciPy-designed coefficients

import torch
from scipy.signal import butter

from philtorch.lti import filtfilt, lfilter, lfilter_zi

x = torch.randn(201, dtype=torch.float64)

b_np, a_np = butter(3, 0.05)
# Normalize so that a0 = 1, then drop a0 from the denominator.
b = torch.from_numpy(b_np / a_np[0])
a = torch.from_numpy(a_np[1:] / a_np[0])

# lfilter_zi takes (a, b), the reverse of SciPy's lfilter_zi(b, a).
zi = lfilter_zi(a, b)

y, _ = lfilter(b, a, x, zi=zi * x[0])
y_zero_phase = filtfilt(b, a, x)

Module overview

  • philtorch: Root module.
    • lpv: Functions under it are for linear parameter-varying filters.
      • fir:
        • Finite Impulse Response filters.
      • allpole:
        • All-pole filters.
      • lfilter:
        • Parameter-varying version of scipy.signal.lfilter. It supports not only transposed direct form II but also transposed direct form I, direct form I, and direct form II structures.
      • state_space:
        • Parameter-varying state-space models.
      • state_space_recursion:
        • The core recursion function for state-space models.
      • linear_recurrence:
        • A linear recurrence function with scalar coefficients.
    • lti: Functions under it are for linear time-invariant filters.
      • fir:
        • Finite Impulse Response filters.
      • lfilter:
        • A differentiable version of scipy.signal.lfilter. It supports not only transposed direct form II but also transposed direct form I, direct form I, and direct form II structures.
      • filtfilt:
        • A differentiable version of scipy.signal.filtfilt.
      • lfilter_zi:
        • A differentiable version of scipy.signal.lfilter_zi.
      • lfiltic:
        • A differentiable version of scipy.signal.lfiltic.
      • state_space:
        • State-space models.
      • diag_state_space:
        • State-space models with diagonalisable state matrix.
      • delay_state_space:
        • State-space models whose states are delay lines of arbitrary integer length, such as feedback delay networks, with optional absorption filters on each line.
      • state_space_recursion:
        • The core recursion function for state-space models.
      • linear_recurrence:
        • A linear recurrence function with scalar coefficients.
      • comb_filter:
        • Delayed all-pole comb filters.
      • cubic_spline:
        • Cubic-spline interpolation for integer upsampling.
    • estimation: Functions under it estimate hidden states from noisy measurements and fit the models by expectation-maximization.
      • kalman_filter, kalman_smoother:
        • Kalman filters and Rauch–Tung–Striebel smoothers for linear Gaussian state-space models, parallelized over time with associative scans, with the log-likelihood and the smoother's lag-one cross-covariances for fitting by gradients or EM.
      • hmm_filter, hmm_smoother, hmm_viterbi:
        • The forward algorithm, forward-backward smoothing and Viterbi decoding for hidden Markov models, parallelized over time and differentiable to any order in reverse mode. CUDA GPUs only, as Triton kernels.
      • em, kalman_em_step, hmm_em_step:
        • Expectation-maximization: em repeats any model's step until the log-likelihood stops rising; the Kalman step has Shumway and Stoffer's closed-form M-step, the HMM step is Baum–Welch for the transitions and initial distribution. Parameters are shared or per signal.
    • align: Functions under it align sequences.
      • dtw, dtw_path, soft_dtw_divergence:
        • Dynamic time warping and soft-DTW distances from a cost matrix, whose gradients are the alignments, differentiable to any order, and DTW's optimal warping path. CUDA GPUs only, as Triton kernels.
      • ctc_loss, forced_align:
        • The connectionist temporal classification loss, as soft-DTW between frames and a target's states, differentiable to any order, and its most probable alignment. CUDA GPUs only, as Triton kernels.
    • utils: Utility functions.
    • mat: Matrix operations.
    • poly: Polynomial operations.

For detailed API reference, please refer to the docstring of each function.

Choose the right API

The supported high-level interfaces are exported from philtorch.lti for fixed coefficients, philtorch.lpv for coefficients that vary over time, philtorch.estimation for state estimation, and philtorch.align for sequence alignment.

Intent API Notes
Apply a fixed-coefficient causal IIR or FIR filter. philtorch.lti.lfilter or philtorch.lti.fir lfilter supports df2, tdf2, df1, and tdf1 forms.
Apply a fixed-coefficient zero-phase filter. philtorch.lti.filtfilt Runs the LTI filter forward and backward; edge padding is enabled by default and can be disabled with padmode=None.
Construct or recover IIR filter state. philtorch.lti.lfilter_zi or philtorch.lti.lfiltic These helpers use the same normalized a0 = 1 coefficients as lfilter.
Apply a time-varying filter. philtorch.lpv.lfilter, philtorch.lpv.fir, or philtorch.lpv.allpole Coefficient tensors include a time dimension aligned with the input. lpv.lfilter defaults to backend="ssm"; backend="torchlpc" does not support form="tdf2".
Evaluate a scalar linear recurrence. philtorch.lti.linear_recurrence or philtorch.lpv.linear_recurrence Choose the namespace according to whether the recurrence coefficient is fixed or time-varying.
Evaluate a state-space system. philtorch.lti.state_space or philtorch.lpv.state_space Use state_space_recursion directly when only the internal state sequence is needed.
Estimate the states of a linear Gaussian state-space model from noisy measurements. philtorch.estimation.kalman_filter or philtorch.estimation.kalman_smoother A, C, Q, and R shared, time-varying, per signal, or both; uses PyTorch's associative_scan in generic mode, so it needs PyTorch 2.11 or later.
Align two sequences, or measure their distance, by dynamic time warping. philtorch.align.dtw, philtorch.align.dtw_path, or philtorch.align.soft_dtw_divergence CUDA GPUs only. Takes any (B, N, M) cost, or features x=, y= of shapes (B, N, F) and (B, M, F) for their squared Euclidean distances, computed in the kernels (in memory linear in N + M, but for soft-DTW's gradient); gamma=0 for DTW, positive for soft-DTW. Symmetric, asymmetric or orthogonal steps, padded lengths and, from features, a Sakoe-Chiba band. The gradient with respect to the cost is the alignment.
Train a sequence model on unsegmented targets with the CTC loss, or align targets to frames. philtorch.align.ctc_loss or philtorch.align.forced_align CUDA GPUs only. The arguments of torch.nn.functional.ctc_loss, batch first: (N, T, C) log-probabilities, padded or concatenated targets, the same reductions. Faster than torch.nn.functional.ctc_loss on long inputs with targets of up to about 60 labels, and differentiable to any order.
Infer or decode the states of a hidden Markov model. philtorch.estimation.hmm_filter, philtorch.estimation.hmm_smoother, or philtorch.estimation.hmm_viterbi CUDA GPUs only. Log-probabilities in; transitions shared, time-varying, per signal, or both. Chunked parallel scans in Triton, differentiable to any order in reverse mode; the work grows as K³, so they suit small state spaces on long sequences.
Fit a Kalman or hidden Markov model by expectation-maximization. philtorch.estimation.em with philtorch.estimation.kalman_em_step or philtorch.estimation.hmm_em_step Parameters shared by all signals or one per signal. hmm_em_step re-estimates the transitions and initial distribution and returns the posteriors for your emission model; CUDA GPUs only.
Evaluate an LTI state-space system through eigendecomposition. philtorch.lti.diag_state_space Requires a diagonalisable A, or explicitly supplied L, V, and/or Vinv; diagonalisation failures propagate.
Evaluate an LTI system whose states are delay lines, such as a feedback delay network. philtorch.lti.delay_state_space Computes s[n + m] = A s[n] + B x[n] and y[n] = C s[n] + D x[n], with s the delay-line outputs. delays are positive integers, one per line; B, C, D, and out_idx follow state_space. zi holds each line's first m_i outputs, and (y, zf) is returned only when it is given. absorption=(b, a) adds an IIR filter to each line, in lfilter's convention: after the delay by default, or after A with absorption_after_matrix=True; then (y, zf, absorption_zf) is returned when zi or absorption_zi is given.
Apply an LTI comb filter or cubic-spline interpolation. philtorch.lti.comb_filter or philtorch.lti.cubic_spline These utilities are also part of the public LTI exports.

Comparison with scipy.signal

PhilTorch functions take PyTorch tensors, support autograd and batching, and keep the input dtype and device. Coefficients are normalized so that a0 = 1: divide SciPy's b and a by a[0], then pass a[1:] as the denominator, as in the Quickstart example.

SciPy PhilTorch Differences
lfilter philtorch.lti.lfilter, philtorch.lti.fir Filters the last axis of 1-D or batched 2-D tensors, batches coefficients, and supports df2, tdf2, df1, and tdf1. fir is the batched FIR-only path.
lfiltic philtorch.lti.lfiltic Builds the filter state from past inputs and outputs.
lfilter_zi philtorch.lti.lfilter_zi Takes (a, b), the reverse of SciPy's (b, a).
filtfilt philtorch.lti.filtfilt Defaults to padmode="replicate" and disables padding with padmode=None; method="gust" is not implemented and irlen is unused.
cspline1d, cspline1d_eval philtorch.lti.cubic_spline Upsamples batched 2-D signals by an integer factor only; no arbitrary evaluation points or smoothing (lamb must be zero); uses PyTorch reflect padding unless scipy_padding=True.
dlsim philtorch.lti.state_space Takes A, B, C, D tensors instead of a system object and returns the output, plus the final state when zi is given; no time vector or full state trajectory. dimpulse and dstep can be reproduced with explicit impulse or step inputs.
— philtorch.lpv.lfilter, philtorch.lpv.fir, philtorch.lpv.allpole, philtorch.lpv.state_space Time-varying filters and state-space models whose coefficients carry a time dimension.
— philtorch.lti.linear_recurrence, philtorch.lpv.linear_recurrence, state_space_recursion Differentiable scalar recurrences and internal state sequences.
— philtorch.lti.diag_state_space State-space evaluation through the eigendecomposition of a diagonalizable A.
— philtorch.lti.comb_filter Delayed all-pole comb recurrence with a given coefficient and delay; it does not design filters like iircomb.

Performance

Recursive filters are hard to parallelize, so PhilTorch implements custom C++, CUDA and Triton kernels. With the default unroll_factor=None, the state-space paths (lfilter, state_space, and state_space_recursion) choose a kernel from the device, the dtype and the filter order, which is the state size M:

Device LTI, M = 1 LTI, M = 2 LTI, M ≥ 3 LPV, M = 1 LPV, M = 2 LPV, M = 3 LPV, M ≥ 4
CPU ✓ ✓ ✓ ✓ ✓ ✓ ✓
CUDA (source builds) ✓ ✓ ✓¹ ✓ ✓ ✓ ✓¹
MPS ✓² ✗ ✗ ✗ ✗ ✗ ✗

✓ native or Triton kernel · ✗ raises NotImplementedError, since no kernel takes the input; pass unroll_factor=1 for the sequential loop, or 2 up to one less than the sequence length for a block-unrolled recursion, or use CPU. ¹ Triton, up to M = 128 (64 for complex dtypes); larger M raises. A native kernel takes M = 3 in float32. ² float32 only.

The kernels take floating-point and complex dtypes, and int64, exactly; other dtypes raise.

Passing an integer unroll_factor runs PyTorch ops instead. unroll_factor=1 runs the sequential loop. In 0.7 it ran the kernels; to keep that, omit the argument or pass None. Until 0.9, 1 emits a FutureWarning. Setting 1 < unroll_factor < sequence length switches to a block-unrolled recursion, which computes blocks in parallel with matrix multiplications (background); larger values run the sequential loop too. Both run on any device, in the dtypes PyTorch's matrix products take there: integers on CPU, but not on CUDA. The block-unrolled recursion is slower than the native kernels but much faster than the sequential loop. Good starting points are 8 on CPU and 16–32 on CUDA, but benchmark your own batch size, sequence length, state size, dtype, and device, for example with torch.utils.benchmark. Native kernels are fastest for filters of order 1 to 3, so prefer cascades or parallel banks of such sections, especially on CUDA.

Examples

Fibonacci numbers with state_space

philtorch.lti.state_space computes

\begin{aligned}
\mathbf{h}_{n+1} &= \mathbf{A} \mathbf{h}_n + \mathbf{B} \mathbf{x}_n, \\
\mathbf{y}_n &= \mathbf{C} \mathbf{h}_n + \mathbf{D} \mathbf{x}_n.
\end{aligned}

Setting the following, with $\mathbf{B} = \mathbf{D} = 0$ and no input, yields the Fibonacci numbers:

\mathbf{A} = \begin{bmatrix} 1 & 1 \\ 1 & 0 \end{bmatrix}, \qquad
\mathbf{C} = \begin{bmatrix} 1 & 0 \end{bmatrix}, \qquad
\mathbf{h}_0 = \begin{bmatrix} 1 \\ 0 \end{bmatrix}.
import torch

from philtorch.lti import state_space

A = torch.tensor([[1, 1], [1, 0]])
C = torch.tensor([1, 0])
x = torch.zeros(1, 10).long()
h0 = torch.tensor([1, 0])
y, _ = state_space(A, x, C=C, zi=h0)
print(y)
tensor([[ 1,  1,  2,  3,  5,  8, 13, 21, 34, 55]])

This produces the first ten Fibonacci numbers, where $F_n = F_{n-1} + F_{n-2}$ with $F_0 = F_1 = 1$.

Learning filter parameters

The low-pass estimation notebook demonstrates learning filter parameters by gradient descent.

Paper and citation

PhilTorch's LTI direct-form filtering work is described in Accelerating Automatic Differentiation of Direct Form Digital Filters by Chin-Yun Yu and György Fazekas.

@inproceedings{yu2025accelerating,
  title={Accelerating Automatic Differentiation of Direct Form Digital Filters},
  author={Yu, Chin-Yun and Fazekas, György},
  booktitle={Differentiable Systems and Scientific Machine Learning Workshop at EurIPS 2025},
  year={2025},
  url={https://openreview.net/forum?id=ZhwIyvtBNB}
}

Metadata

Release files for philtorch 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for philtorch 0.8.0
File Size Uploaded Provenance Actions
philtorch-0.8.0.tar.gz 313.7 kB With provenance Details for philtorch-0.8.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for philtorch 0.8.0
File Actions
philtorch-0.8.0-cp315-cp315-win_amd64.whl CPython 3.15 CPython 3.15 Windows x86-64 Details for philtorch-0.8.0-cp315-cp315-win_amd64.whl
philtorch-0.8.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for philtorch-0.8.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
philtorch-0.8.0-cp315-cp315-macosx_14_0_arm64.whl CPython 3.15 CPython 3.15 macOS 14.0+ ARM64 Details for philtorch-0.8.0-cp315-cp315-macosx_14_0_arm64.whl
philtorch-0.8.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for philtorch-0.8.0-cp314-cp314-win_amd64.whl
philtorch-0.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for philtorch-0.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
philtorch-0.8.0-cp314-cp314-macosx_14_0_arm64.whl CPython 3.14 CPython 3.14 macOS 14.0+ ARM64 Details for philtorch-0.8.0-cp314-cp314-macosx_14_0_arm64.whl
philtorch-0.8.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for philtorch-0.8.0-cp313-cp313-win_amd64.whl
philtorch-0.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for philtorch-0.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
philtorch-0.8.0-cp313-cp313-macosx_14_0_arm64.whl CPython 3.13 CPython 3.13 macOS 14.0+ ARM64 Details for philtorch-0.8.0-cp313-cp313-macosx_14_0_arm64.whl
philtorch-0.8.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for philtorch-0.8.0-cp312-cp312-win_amd64.whl
philtorch-0.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for philtorch-0.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
philtorch-0.8.0-cp312-cp312-macosx_14_0_arm64.whl CPython 3.12 CPython 3.12 macOS 14.0+ ARM64 Details for philtorch-0.8.0-cp312-cp312-macosx_14_0_arm64.whl
philtorch-0.8.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for philtorch-0.8.0-cp311-cp311-win_amd64.whl
philtorch-0.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for philtorch-0.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
philtorch-0.8.0-cp311-cp311-macosx_14_0_arm64.whl CPython 3.11 CPython 3.11 macOS 14.0+ ARM64 Details for philtorch-0.8.0-cp311-cp311-macosx_14_0_arm64.whl

Total release size: 5.3 MB

Release files / philtorch-0.8.0.tar.gz

Download URL philtorch-0.8.0.tar.gz
Size 313.7 kB
Tags Source
SHA-256 checksum
How to use checksums
65ec5a3b039587827a33289b17da5588e90dabe061e9fe9b1b16beb5915d69f6
BLAKE2b-256 checksum
How to use checksums
8bfb98e360fe76e558a20a5172fe18f7b2b9faf5bc29e9181506daa30af6615c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp315-cp315-win_amd64.whl

Download URL philtorch-0.8.0-cp315-cp315-win_amd64.whl
Size 310.4 kB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
df2375a6df0fdba65821950504fc4ed6708f40f65673de964d5bac4f0141905a
BLAKE2b-256 checksum
How to use checksums
2bd1980462d3bff1a0a8980f7a52467fedaacef4c4068a4b222daa4be0368dc8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL philtorch-0.8.0-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 435.3 kB
Tags CPython 3.15 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
538a1a0548c1e9ae64a6954db6023799c131aa80205c4c52fbee37c34d9356cc
BLAKE2b-256 checksum
How to use checksums
6eedf6cae91128965cf499cd3e82d586ec646df82b587ab3e9c0a72ade37ba67
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp315-cp315-macosx_14_0_arm64.whl

Download URL philtorch-0.8.0-cp315-cp315-macosx_14_0_arm64.whl
Size 246.8 kB
Tags CPython 3.15 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
a0541083c7f78bd62876f69bf00cccfb66d43299114e67c237e13abc28d3dd0e
BLAKE2b-256 checksum
How to use checksums
33d448e049eac1dc41eb03d75f84ddaceefc63f19c0f05be223c7bed2986b06f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp314-cp314-win_amd64.whl

Download URL philtorch-0.8.0-cp314-cp314-win_amd64.whl
Size 310.4 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
d5c5405b059524f9bc0884e50aa1dac2560b83d6d3e6846493ef8c62c7603486
BLAKE2b-256 checksum
How to use checksums
3329585db9340e32d518b71f0ccfbdf0789120a35bbc65bd073a935f08198d7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL philtorch-0.8.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 435.6 kB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b045cd171dd73f59bc68fb465f8e46c82458c116b245892140a5527fd5f679a8
BLAKE2b-256 checksum
How to use checksums
c1773fdbdeadb71e937974e9b0bda014964aeadb2c3426b30f99b2d3f68b0558
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp314-cp314-macosx_14_0_arm64.whl

Download URL philtorch-0.8.0-cp314-cp314-macosx_14_0_arm64.whl
Size 246.9 kB
Tags CPython 3.14 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
ed7f4b685cfc37abb677dae4f598a8548035fba466198f6b1ba0af5442ee10f2
BLAKE2b-256 checksum
How to use checksums
d254c9d1f42f43fdb59148e5d169f4de362f0852bc7a8ce1402739ca1ad7e6af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp313-cp313-win_amd64.whl

Download URL philtorch-0.8.0-cp313-cp313-win_amd64.whl
Size 305.5 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e1f840e6932378edf0fd3b2566e737b1e588698b100aeccc5b08ff38b30a35a5
BLAKE2b-256 checksum
How to use checksums
a7679abeac330abb31f5f3ccd8aefdf2029d55bde28f7a5e13979e2ea3aa23e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL philtorch-0.8.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 435.6 kB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
bb3b233fccef32c7abe3509cfa87e540ae30c8c06e55b1a0902303165c49656d
BLAKE2b-256 checksum
How to use checksums
839b2f85c212e5ab4c3222c2742deb494cceb0ec3d4ea02de785e176b60c7a06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp313-cp313-macosx_14_0_arm64.whl

Download URL philtorch-0.8.0-cp313-cp313-macosx_14_0_arm64.whl
Size 246.9 kB
Tags CPython 3.13 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
1721a5c46cb17ea88e785c3f4778100086da148bcf348bc02ea6b4ab1f645844
BLAKE2b-256 checksum
How to use checksums
8edb768a5a822898336a685bbb98f77866c31c646b8d436f9b42f589cbb85634
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp312-cp312-win_amd64.whl

Download URL philtorch-0.8.0-cp312-cp312-win_amd64.whl
Size 305.4 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
193535887c63fbed9e5b486b40bdc88e599ee94c6db6be59e1909c788eda17b9
BLAKE2b-256 checksum
How to use checksums
7997ae67475eb7b08bb1658438396d38003842652ad211c79a61af71f4247aa2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL philtorch-0.8.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 435.6 kB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e1a301d4794c1c295d50bb3206b367656accf15e46313eaffcb12ccb3d35bc99
BLAKE2b-256 checksum
How to use checksums
572d5c2c24ff409486d889996060232e538be23f43e05918a6f81d01f537c1ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp312-cp312-macosx_14_0_arm64.whl

Download URL philtorch-0.8.0-cp312-cp312-macosx_14_0_arm64.whl
Size 246.9 kB
Tags CPython 3.12 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
81e14d2b6c0ad2169a4834fc7a115b03fe2d2bdc84636c5c7bfd9afe878cb719
BLAKE2b-256 checksum
How to use checksums
0494a5f878dbd2f76e3937c9743aaaa2b05a4a546220439306e8e856dc7a43df
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp311-cp311-win_amd64.whl

Download URL philtorch-0.8.0-cp311-cp311-win_amd64.whl
Size 303.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2119fa58b828802a13debc8c25b96048e40f18656c438696141816f11a772102
BLAKE2b-256 checksum
How to use checksums
0d460e27a90541a8a2c68ce0c2d91493e61b32f54d0e2a58f5937c7d74223a35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL philtorch-0.8.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 434.7 kB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
04ae8f84c7c1dc9839e877666f2ec7d46de0072d1cd87366d74f94a7e70732ed
BLAKE2b-256 checksum
How to use checksums
d9f277becbd1bafa1f4469e040271d1cebfb69a7471e8d7e4e47516ee78d84f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Release files / philtorch-0.8.0-cp311-cp311-macosx_14_0_arm64.whl

Download URL philtorch-0.8.0-cp311-cp311-macosx_14_0_arm64.whl
Size 246.8 kB
Tags CPython 3.11 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
99995721f651b00e8c7a7ad13a47902f878a96902991c231d8b2a347fa22b776
BLAKE2b-256 checksum
How to use checksums
6301027cbd6cd48a638aaeb76d3feddcdd78013c6f281b1c97b597a9de228628
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

Security for philtorch 0.8.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 16 files in this release have been uploaded with provenance metadata.

Select from 16 files

Attestation for philtorch-0.8.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page