Skip to content

Commit 37bb049

Browse files
committed
Update documentation to replace "Siddon-Joseph" with "Siddon method with interpolation" for clarity in projection and backprojection functions
1 parent bbbde3b commit 37bb049

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

diffct/differentiable.py

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,7 @@ def _parallel_2d_forward_kernel(
325325
):
326326
"""Compute the 2D parallel beam forward projection.
327327
328-
This CUDA kernel implements the Siddon-Joseph ray-tracing algorithm for
328+
This CUDA kernel implements the Siddon ray-tracing method with interpolation for
329329
2D parallel beam forward projection.
330330
331331
Parameters
@@ -357,7 +357,7 @@ def _parallel_2d_forward_kernel(
357357
358358
Notes
359359
-----
360-
The Siddon-Joseph algorithm provides accurate ray-volume intersection by:
360+
The Siddon method with interpolation provides accurate ray-volume intersection by:
361361
- Calculating ray-volume boundary intersections to define traversal limits.
362362
- Iterating through voxels along the ray path via parametric equations.
363363
- Determining bilinear interpolation weights for sub-voxel sampling.
@@ -416,7 +416,7 @@ def _parallel_2d_forward_kernel(
416416
if t_min >= t_max:
417417
d_sino[iang, idet] = 0.0; return
418418

419-
# === SIDDON-JOSEPH VOXEL TRAVERSAL INITIALIZATION ===
419+
# === SIDDON METHOD VOXEL TRAVERSAL INITIALIZATION ===
420420
accum = 0.0 # Accumulated projection value along ray
421421
t = t_min # Current ray parameter (distance from ray start)
422422

@@ -493,8 +493,8 @@ def _parallel_2d_backward_kernel(
493493
):
494494
"""Compute the 2D parallel beam backprojection.
495495
496-
This CUDA kernel implements the Siddon-Joseph algorithm for 2D parallel
497-
beam backprojection.
496+
This CUDA kernel implements the Siddon ray-tracing method with interpolation for
497+
2D parallel beam backprojection.
498498
499499
Parameters
500500
----------
@@ -558,7 +558,7 @@ def _parallel_2d_backward_kernel(
558558

559559
if t_min >= t_max: return
560560

561-
# === SIDDON-JOSEPH TRAVERSAL INITIALIZATION ===
561+
# === SIDDON METHOD TRAVERSAL INITIALIZATION ===
562562
t = t_min
563563
ix = int(math.floor(pnt_x + t * dir_x + cx))
564564
iy = int(math.floor(pnt_y + t * dir_y + cy))
@@ -622,8 +622,8 @@ def _fan_2d_forward_kernel(
622622
):
623623
"""Compute the 2D fan beam forward projection.
624624
625-
This CUDA kernel implements the Siddon-Joseph algorithm for 2D fan beam
626-
forward projection.
625+
This CUDA kernel implements the Siddon ray-tracing method with interpolation for
626+
2D fan beam forward projection.
627627
628628
Parameters
629629
----------
@@ -713,7 +713,7 @@ def _fan_2d_forward_kernel(
713713
if t_min >= t_max: # No valid intersection
714714
d_sino[iang, idet] = 0.0; return
715715

716-
# === SIDDON-JOSEPH TRAVERSAL (same algorithm as parallel beam) ===
716+
# === SIDDON METHOD TRAVERSAL (same algorithm as parallel beam) ===
717717
accum = 0.0 # Accumulated projection value
718718
t = t_min # Current ray parameter
719719

@@ -774,8 +774,8 @@ def _fan_2d_backward_kernel(
774774
):
775775
"""Compute the 2D fan beam backprojection.
776776
777-
This CUDA kernel implements the Siddon-Joseph algorithm for 2D fan beam
778-
backprojection.
777+
This CUDA kernel implements the Siddon ray-tracing method with interpolation for
778+
2D fan beam backprojection.
779779
780780
Parameters
781781
----------
@@ -860,7 +860,7 @@ def _fan_2d_backward_kernel(
860860

861861
if t_min >= t_max: return
862862

863-
# === SIDDON-JOSEPH TRAVERSAL INITIALIZATION ===
863+
# === SIDDON METHOD TRAVERSAL INITIALIZATION ===
864864
t = t_min
865865
ix = int(math.floor(src_x + t * dir_x + cx))
866866
iy = int(math.floor(src_y + t * dir_y + cy))
@@ -924,8 +924,8 @@ def _cone_3d_forward_kernel(
924924
):
925925
"""Compute the 3D cone-beam forward projection.
926926
927-
This CUDA kernel implements the Siddon-Joseph algorithm for 3D cone-beam
928-
forward projection.
927+
This CUDA kernel implements the Siddon ray-tracing method with interpolation for
928+
3D cone-beam forward projection.
929929
930930
Parameters
931931
----------
@@ -1034,7 +1034,7 @@ def _cone_3d_forward_kernel(
10341034
if t_min >= t_max: # No valid 3D intersection
10351035
d_sino[iview, iu, iv] = 0.0; return
10361036

1037-
# === 3D SIDDON-JOSEPH TRAVERSAL INITIALIZATION ===
1037+
# === 3D SIDDON METHOD TRAVERSAL INITIALIZATION ===
10381038
accum = 0.0 # Accumulated projection value
10391039
t = t_min # Current ray parameter
10401040

@@ -1124,8 +1124,8 @@ def _cone_3d_backward_kernel(
11241124
):
11251125
"""Compute the 3D cone-beam backprojection.
11261126
1127-
This CUDA kernel implements the Siddon-Joseph algorithm for 3D cone-beam
1128-
backprojection.
1127+
This CUDA kernel implements the Siddon ray-tracing method with interpolation for
1128+
3D cone-beam backprojection.
11291129
11301130
Parameters
11311131
----------
@@ -1228,7 +1228,7 @@ def _cone_3d_backward_kernel(
12281228

12291229
if t_min >= t_max: return
12301230

1231-
# === 3D SIDDON-JOSEPH TRAVERSAL INITIALIZATION ===
1231+
# === 3D SIDDON METHOD TRAVERSAL INITIALIZATION ===
12321232
t = t_min
12331233
ix = int(math.floor(src_x + t * dir_x + cx)) # Current voxel x-index
12341234
iy = int(math.floor(src_y + t * dir_y + cy)) # Current voxel y-index
@@ -1314,8 +1314,8 @@ class ParallelProjectorFunction(torch.autograd.Function):
13141314
13151315
Notes
13161316
-----
1317-
Provides a differentiable interface to the CUDA-accelerated Siddon-Joseph
1318-
ray-tracing algorithm for parallel beam CT geometry. The forward pass computes
1317+
Provides a differentiable interface to the CUDA-accelerated Siddon ray-tracing
1318+
method with interpolation for parallel beam CT geometry. The forward pass computes
13191319
the sinogram from a 2D image using parallel beam geometry. The backward pass
13201320
computes gradients using the adjoint backprojection operation. Requires
13211321
CUDA-capable hardware and a properly configured CUDA environment; all input
@@ -1367,7 +1367,7 @@ def forward(ctx, image, angles, num_detectors, detector_spacing=1.0, voxel_spaci
13671367
-----
13681368
- All input tensors must be on the same CUDA device.
13691369
- The operation is fully differentiable and supports autograd.
1370-
- Uses the Siddon-Joseph algorithm for accurate ray tracing and bilinear interpolation.
1370+
- Uses the Siddon method with interpolation for accurate ray tracing and bilinear interpolation.
13711371
13721372
Examples
13731373
--------
@@ -1454,8 +1454,8 @@ class ParallelBackprojectorFunction(torch.autograd.Function):
14541454
14551455
Notes
14561456
-----
1457-
Provides a differentiable interface to the CUDA-accelerated Siddon-Joseph ray-tracing
1458-
algorithm for parallel beam backprojection. The forward pass computes a 2D
1457+
Provides a differentiable interface to the CUDA-accelerated Siddon ray-tracing
1458+
method with interpolation for parallel beam backprojection. The forward pass computes a 2D
14591459
reconstruction from sinogram data using parallel beam backprojection, and the
14601460
backward pass computes gradients via forward projection as the adjoint operation.
14611461
Requires CUDA-capable hardware and consistent device placements.
@@ -1502,7 +1502,7 @@ def forward(ctx, sinogram, angles, detector_spacing=1.0, H=128, W=128, voxel_spa
15021502
-----
15031503
- All input tensors must be on the same CUDA device.
15041504
- The operation is fully differentiable and supports autograd.
1505-
- Uses the Siddon-Joseph algorithm for accurate ray tracing and bilinear interpolation.
1505+
- Uses the Siddon method with interpolation for accurate ray tracing and bilinear interpolation.
15061506
15071507
Examples
15081508
--------
@@ -1593,8 +1593,8 @@ class FanProjectorFunction(torch.autograd.Function):
15931593
15941594
Notes
15951595
-----
1596-
Provides a differentiable interface to the CUDA-accelerated Siddon-Joseph
1597-
ray-tracing algorithm for fan beam geometry, where rays diverge from a point
1596+
Provides a differentiable interface to the CUDA-accelerated Siddon ray-tracing
1597+
method with interpolation for fan beam geometry, where rays diverge from a point
15981598
X-ray source to a linear detector array. The forward pass computes sinograms
15991599
using divergent beam geometry, and the backward pass computes gradients via
16001600
adjoint backprojection.
@@ -1646,7 +1646,7 @@ def forward(ctx, image, angles, num_detectors, detector_spacing, sdd, sid, voxel
16461646
- All input tensors must be on the same CUDA device.
16471647
- The operation is fully differentiable and supports autograd.
16481648
- Fan beam geometry uses divergent rays from a point source to the detector.
1649-
- Uses the Siddon-Joseph algorithm for accurate ray tracing and bilinear interpolation.
1649+
- Uses the Siddon method with interpolation for accurate ray tracing and bilinear interpolation.
16501650
16511651
Examples
16521652
--------
@@ -1730,8 +1730,8 @@ class FanBackprojectorFunction(torch.autograd.Function):
17301730
17311731
Notes
17321732
-----
1733-
Provides a differentiable interface to the CUDA-accelerated Siddon-Joseph
1734-
ray-tracing algorithm for fan beam backprojection. Implements the adjoint
1733+
Provides a differentiable interface to the CUDA-accelerated Siddon ray-tracing
1734+
method with interpolation for fan beam backprojection. Implements the adjoint
17351735
of the fan beam projection operator, distributing sinogram values back into
17361736
the reconstruction volume along divergent ray paths. The forward pass
17371737
computes reconstruction from sinogram data, and the backward pass computes
@@ -1786,7 +1786,7 @@ def forward(ctx, sinogram, angles, detector_spacing, H, W, sdd, sid, voxel_spaci
17861786
- All input tensors must be on the same CUDA device.
17871787
- The operation is fully differentiable and supports autograd.
17881788
- Fan beam geometry uses divergent rays from a point source to the detector.
1789-
- Uses the Siddon-Joseph algorithm for accurate ray tracing and bilinear interpolation.
1789+
- Uses the Siddon method with interpolation for accurate ray tracing and bilinear interpolation.
17901790
17911791
Examples
17921792
--------
@@ -1870,8 +1870,8 @@ class ConeProjectorFunction(torch.autograd.Function):
18701870
18711871
Notes
18721872
-----
1873-
Provides a differentiable interface to the CUDA-accelerated Siddon-Joseph
1874-
ray-tracing algorithm for 3D cone beam geometry. Rays emanate from a point
1873+
Provides a differentiable interface to the CUDA-accelerated Siddon ray-tracing
1874+
method with interpolation for 3D cone beam geometry. Rays emanate from a point
18751875
X-ray source to a 2D detector array capturing volumetric projection data.
18761876
The forward pass computes 3D projections, and the backward pass computes
18771877
gradients via adjoint 3D backprojection. Requires significant GPU memory.
@@ -1927,7 +1927,7 @@ def forward(ctx, volume, angles, det_u, det_v, du, dv, sdd, sid, voxel_spacing=1
19271927
- All input tensors must be on the same CUDA device.
19281928
- The operation is fully differentiable and supports autograd.
19291929
- Cone beam geometry uses a point source and a 2D detector array.
1930-
- Uses the Siddon-Joseph algorithm for accurate 3D ray tracing and trilinear interpolation.
1930+
- Uses the Siddon method with interpolation for accurate 3D ray tracing and trilinear interpolation.
19311931
19321932
Examples
19331933
--------
@@ -2019,8 +2019,8 @@ class ConeBackprojectorFunction(torch.autograd.Function):
20192019
20202020
Notes
20212021
-----
2022-
Provides a differentiable interface to the CUDA-accelerated Siddon-Joseph
2023-
ray-tracing algorithm for 3D cone beam backprojection. The forward pass
2022+
Provides a differentiable interface to the CUDA-accelerated Siddon ray-tracing
2023+
method with interpolation for 3D cone beam backprojection. The forward pass
20242024
computes a 3D reconstruction from cone beam projection data using
20252025
backprojection as the adjoint operation. The backward pass computes gradients
20262026
via 3D cone beam forward projection. Requires CUDA-capable hardware and
@@ -2087,7 +2087,7 @@ def forward(ctx, sinogram, angles, D, H, W, du, dv, sdd, sid, voxel_spacing=1.0)
20872087
- All input tensors must be on the same CUDA device.
20882088
- The operation is fully differentiable and supports autograd.
20892089
- Cone beam geometry uses a point source and a 2D detector array.
2090-
- Uses the Siddon-Joseph algorithm for accurate 3D ray tracing and trilinear interpolation.
2090+
- Uses the Siddon method with interpolation for accurate 3D ray tracing and trilinear interpolation.
20912091
20922092
Examples
20932093
--------

0 commit comments

Comments
 (0)