Commit 7b6d0284 authored by Andrey Filippov's avatar Andrey Filippov

CLAUDE: LoG isolation test (curt.log_ident) - identity vs pure-LoG kernels, aberrations skipped

Andrey's discriminator for the fold-vs-kernel-interaction question: with
rend_test + new 'RT render LoG isolation (identity krnl)' ON, saves
-CUAS-RT-RENDER-ID (identity kernels: q0=1, q1..3=0, CltExtra=0 - aberration
correction AND fractional offsets skipped), -ID-LOG-ORACLE (pixel LoG of -ID),
and -LOG-ONLY (pure-LoG kernels, CuasLogFold.uniformKernels(log_td)).
If -LOG-ONLY vs -ID-LOG-ORACLE residual persists, the fold/L0 is wrong; if it
collapses to the wrap floor, the aberration-kernel interaction is responsible.
Refactor: pixel-LoG application extracted to applyPixelLog(); log_test and
log_ident share the kernel fetch/restore (finally).

Evidence so far (offline, this evening's run): per-sensor high-bin tilt varies
s07 +1.3% .. s01 +2.4% with identical scene content => kernel-dependent;
per-quadrant deviation maps identical (no single-coefficient signature);
kx=0 column regionally incoherent (row-structure channel, separate issue).
Co-Authored-By: 's avatarClaude Fable 5 <noreply@anthropic.com>
parent c9b0452a
...@@ -118,6 +118,52 @@ public class CuasLogFold { ...@@ -118,6 +118,52 @@ public class CuasLogFold {
return folded; return folded;
} }
/**
* Build space-INVARIANT kernels in the shape of a template kernel array:
* quadrant 0 = the given per-bin response (null = all-ones = IDENTITY, i.e.
* aberration correction skipped), quadrants 1..3 = 0, CltExtra = all zeros
* (no fractional offsets). For the LoG-only / identity isolation test
* (Andrey 07/06/2026: separate the fold mechanism from the aberration
* kernel content). By Claude on 07/06/2026.
* @param template existing kernels supplying the array shape
* @param response per-bin quadrant-0 response [64], or null for identity
* @return new kernel array, same shape as template
*/
public static double [][][][][][] uniformKernels(
double [][][][][][] template,
double [] response) {
double [][][][][][] uni = new double [template.length][][][][][];
for (int ncam = 0; ncam < template.length; ncam++) {
if (template[ncam] == null) continue;
uni[ncam] = new double [template[ncam].length][][][][];
for (int col = 0; col < template[ncam].length; col++) {
if (template[ncam][col] == null) continue;
uni[ncam][col] = new double [template[ncam][col].length][][][];
for (int ty = 0; ty < template[ncam][col].length; ty++) {
if (template[ncam][col][ty] == null) continue;
uni[ncam][col][ty] = new double [template[ncam][col][ty].length][][];
for (int tx = 0; tx < template[ncam][col][ty].length; tx++) {
double [][] ktile = template[ncam][col][ty][tx];
if (ktile == null) continue;
double [][] utile = new double [ktile.length][];
for (int p = 0; p < ktile.length; p++) {
utile[p] = new double [ktile[p].length]; // zeros
if (p == 0) {
if (response != null) {
System.arraycopy(response, 0, utile[0], 0, response.length);
} else {
java.util.Arrays.fill(utile[0], 1.0); // identity
}
}
}
uni[ncam][col][ty][tx] = utile;
}
}
}
}
return uni;
}
/** Inherent per-tap attenuation of a TD per-bin multiply: pixel-domain /** Inherent per-tap attenuation of a TD per-bin multiply: pixel-domain
* equivalent kernel taps are scaled by cos(pi*dx/(2*TS))*cos(pi*dy/(2*TS)) * equivalent kernel taps are scaled by cos(pi*dx/(2*TS))*cos(pi*dy/(2*TS))
* (the lapped-window/convolution non-commutation term; same weights as * (the lapped-window/convolution non-commutation term; same weights as
......
...@@ -295,16 +295,29 @@ public class CuasRender { ...@@ -295,16 +295,29 @@ public class CuasRender {
mb_en, mb_tau, mb_max_gain, ts_names, debugLevel); mb_en, mb_tau, mb_max_gain, ts_names, debugLevel);
saveRenderHyper(center_CLT, "-CUAS-RT-RENDER", rendered, ts_names, saveRenderHyper(center_CLT, "-CUAS-RT-RENDER", rendered, ts_names,
img_width, img_height, num_comps); img_width, img_height, num_comps);
// ---- LoG A/B (curt.log_test): the aberration+LoG kernel-fold validation // ---- LoG A/B (curt.log_test / curt.log_ident): the aberration+LoG
// (roadmap RT-seed step 1b). Two more comparable hyperstacks: // kernel-fold validation (roadmap RT-seed step 1b). Comparable hyperstacks:
// -LOG-ORACLE: the EXISTING pre-DNN pixel-domain LoG (convolve2DLReLU, // log_test: -LOG-ORACLE (product above x the EXISTING pre-DNN pixel LoG,
// LINEAR alpha=1) applied to the product above; // convolve2DLReLU LINEAR alpha=1) + -LOG-FOLDED (same render,
// -LOG-FOLDED: same render chain, but the LoG folded into the aberration // LoG folded into the aberration kernels - no pixel conv).
// kernels (CuasLogFold) and re-uploaded to the GPU - NO // log_ident: -ID (IDENTITY kernels - aberrations skipped) + -ID-LOG-ORACLE
// pixel-domain convolution. Original kernels restored after. // (pixel LoG of -ID) + -LOG-ONLY (pure-LoG kernels). Isolates
// Offline compare (attic/CLAUDE/compare_cuda_versions.py --only LOG-) is // the fold mechanism from the aberration-kernel content
// the match verdict. By Claude on 07/06/2026, Andrey's step-1b spec. // (Andrey 07/06/2026: if -LOG-ONLY vs -ID-LOG-ORACLE residual
if (clt_parameters.curt.log_test) { // persists, the fold/L0 is wrong; if it collapses to the wrap
// floor, the aberration-kernel interaction was responsible).
// Original kernels ALWAYS restored. Offline verdict:
// attic/CLAUDE/compare_cuda_versions.py --only LOG-,ID. By Claude on 07/06/2026.
if (clt_parameters.curt.log_test || clt_parameters.curt.log_ident) {
final GpuQuad gpuQuad = center_CLT.getGPUQuad();
final double [][][][][][] orig_kernels = gpuQuad.getQuadCLT().getCLTKernels();
if (orig_kernels == null) {
System.out.println("testRenderSequence(): LoG A/B ERROR - getCLTKernels()==null (kernels never loaded?), skipping LoG tests");
return;
}
final double [] log_td = CuasLogFold.getLogTd(
clt_parameters.curt.psf_radius,
clt_parameters.curt.n_sigma);
// EXACT pre-DNN LoG: same class, same construction as CuasDetectRT.detectTargets // EXACT pre-DNN LoG: same class, same construction as CuasDetectRT.detectTargets
final CuasRTUtils cuasRTUtils = new CuasRTUtils ( final CuasRTUtils cuasRTUtils = new CuasRTUtils (
clt_parameters.curt.psf_radius, // double psf_radius, clt_parameters.curt.psf_radius, // double psf_radius,
...@@ -316,40 +329,15 @@ public class CuasRender { ...@@ -316,40 +329,15 @@ public class CuasRender {
clt_parameters.curt.vel_suppr_rad, // int vel_suppr_rad, clt_parameters.curt.vel_suppr_rad, // int vel_suppr_rad,
img_width, // int width, img_width, // int width,
img_height); // int height img_height); // int height
final double [] kernel2d = cuasRTUtils.getKernel2d(); try {
System.out.println("testRenderSequence(): LoG A/B - applying pixel-domain LoG (LINEAR) for -LOG-ORACLE"); if (clt_parameters.curt.log_test) {
for (int ns = 0; ns < rendered.size(); ns++) { // in place: slices replaced, originals already saved System.out.println("testRenderSequence(): LoG A/B - applying pixel-domain LoG (LINEAR) for -LOG-ORACLE");
final float [][] r = rendered.get(ns); applyPixelLog(rendered, cuasRTUtils); // in place: originals already saved
if (r == null) continue; saveRenderHyper(center_CLT, "-CUAS-RT-RENDER-LOG-ORACLE", rendered, ts_names,
for (int nc = 0; nc < r.length; nc++) { img_width, img_height, num_comps);
if (r[nc] == null) continue; rendered.clear(); // release ~11GB before the next render pass
final double [] dslice = new double [r[nc].length]; System.out.println("testRenderSequence(): LoG A/B - uploading FOLDED aberration+LoG kernels (CuasLogFold, tap-precompensated)");
for (int i = 0; i < dslice.length; i++) dslice[i] = r[nc][i]; gpuQuad.setConvolutionKernels(CuasLogFold.foldKernels(orig_kernels, log_td), true);
final double [] dlog = cuasRTUtils.convolve2DLReLU(
dslice, // final double [] data,
kernel2d, // final double [] kernel, // square
null, // double [] result_in,
1.0); // final double alpha) - LINEAR (the standing ruling)
final float [] fslice = new float [dlog.length];
for (int i = 0; i < fslice.length; i++) fslice[i] = (float) dlog[i];
r[nc] = fslice;
}
}
saveRenderHyper(center_CLT, "-CUAS-RT-RENDER-LOG-ORACLE", rendered, ts_names,
img_width, img_height, num_comps);
rendered.clear(); // release ~11GB before the second render pass
// ---- second pass: folded aberration+LoG kernels on the GPU ----
final GpuQuad gpuQuad = center_CLT.getGPUQuad();
final double [][][][][][] orig_kernels = gpuQuad.getQuadCLT().getCLTKernels();
if (orig_kernels == null) {
System.out.println("testRenderSequence(): LoG A/B ERROR - getCLTKernels()==null (kernels never loaded?), skipping -LOG-FOLDED");
} else {
final double [] log_td = CuasLogFold.getLogTd(
clt_parameters.curt.psf_radius,
clt_parameters.curt.n_sigma);
System.out.println("testRenderSequence(): LoG A/B - uploading FOLDED aberration+LoG kernels (CuasLogFold, tap-precompensated)");
gpuQuad.setConvolutionKernels(CuasLogFold.foldKernels(orig_kernels, log_td), true);
try {
final ArrayList<String> ts_names2 = new ArrayList<String>(); final ArrayList<String> ts_names2 = new ArrayList<String>();
final ArrayList<float [][]> rendered2 = renderPass( final ArrayList<float [][]> rendered2 = renderPass(
clt_parameters, center_CLT, quadCLTs, image_dtt, ers_center, clt_parameters, center_CLT, quadCLTs, image_dtt, ers_center,
...@@ -357,13 +345,63 @@ public class CuasRender { ...@@ -357,13 +345,63 @@ public class CuasRender {
mb_en, mb_tau, mb_max_gain, ts_names2, debugLevel); mb_en, mb_tau, mb_max_gain, ts_names2, debugLevel);
saveRenderHyper(center_CLT, "-CUAS-RT-RENDER-LOG-FOLDED", rendered2, ts_names2, saveRenderHyper(center_CLT, "-CUAS-RT-RENDER-LOG-FOLDED", rendered2, ts_names2,
img_width, img_height, num_comps); img_width, img_height, num_comps);
} finally { // ALWAYS restore the original kernels for anything running after
gpuQuad.setConvolutionKernels(orig_kernels, true);
System.out.println("testRenderSequence(): LoG A/B - original kernels restored");
} }
if (clt_parameters.curt.log_ident) {
System.out.println("testRenderSequence(): LoG A/B - uploading IDENTITY kernels (aberrations skipped)");
gpuQuad.setConvolutionKernels(CuasLogFold.uniformKernels(orig_kernels, null), true);
final ArrayList<String> ts_id = new ArrayList<String>();
final ArrayList<float [][]> rend_id = renderPass(
clt_parameters, center_CLT, quadCLTs, image_dtt, ers_center,
center_disparity, pXpYD_center, cond_cfg, margin,
mb_en, mb_tau, mb_max_gain, ts_id, debugLevel);
saveRenderHyper(center_CLT, "-CUAS-RT-RENDER-ID", rend_id, ts_id,
img_width, img_height, num_comps);
System.out.println("testRenderSequence(): LoG A/B - applying pixel-domain LoG (LINEAR) for -ID-LOG-ORACLE");
applyPixelLog(rend_id, cuasRTUtils);
saveRenderHyper(center_CLT, "-CUAS-RT-RENDER-ID-LOG-ORACLE", rend_id, ts_id,
img_width, img_height, num_comps);
rend_id.clear();
System.out.println("testRenderSequence(): LoG A/B - uploading PURE-LoG kernels (LoG-only, aberrations skipped)");
gpuQuad.setConvolutionKernels(CuasLogFold.uniformKernels(orig_kernels, log_td), true);
final ArrayList<String> ts_lo = new ArrayList<String>();
final ArrayList<float [][]> rend_lo = renderPass(
clt_parameters, center_CLT, quadCLTs, image_dtt, ers_center,
center_disparity, pXpYD_center, cond_cfg, margin,
mb_en, mb_tau, mb_max_gain, ts_lo, debugLevel);
saveRenderHyper(center_CLT, "-CUAS-RT-RENDER-LOG-ONLY", rend_lo, ts_lo,
img_width, img_height, num_comps);
}
} finally { // ALWAYS restore the original kernels for anything running after
gpuQuad.setConvolutionKernels(orig_kernels, true);
System.out.println("testRenderSequence(): LoG A/B - original kernels restored");
}
System.out.println("testRenderSequence(): LoG A/B done - compare the LOG products offline"+
" (attic/CLAUDE/compare_cuda_versions.py)");
}
}
/** Convolve every slice with the EXISTING pre-DNN pixel-domain LoG (LINEAR
* alpha=1, NaN-aware), replacing slices in place. By Claude on 07/06/2026. */
private static void applyPixelLog(
final ArrayList<float [][]> rendered,
final CuasRTUtils cuasRTUtils) {
final double [] kernel2d = cuasRTUtils.getKernel2d();
for (int ns = 0; ns < rendered.size(); ns++) {
final float [][] r = rendered.get(ns);
if (r == null) continue;
for (int nc = 0; nc < r.length; nc++) {
if (r[nc] == null) continue;
final double [] dslice = new double [r[nc].length];
for (int i = 0; i < dslice.length; i++) dslice[i] = r[nc][i];
final double [] dlog = cuasRTUtils.convolve2DLReLU(
dslice, // final double [] data,
kernel2d, // final double [] kernel, // square
null, // double [] result_in,
1.0); // final double alpha) - LINEAR (the standing ruling)
final float [] fslice = new float [dlog.length];
for (int i = 0; i < fslice.length; i++) fslice[i] = (float) dlog[i];
r[nc] = fslice;
} }
System.out.println("testRenderSequence(): LoG A/B done - compare -LOG-ORACLE vs -LOG-FOLDED offline"+
" (attic/CLAUDE/compare_cuda_versions.py --only LOG-)");
} }
} }
......
...@@ -29,6 +29,7 @@ public class CuasRtParameters { ...@@ -29,6 +29,7 @@ public class CuasRtParameters {
public boolean pose_stored = false; // DEBUG: decouple rendering/measurement from the LMA - use the STORED (oracle vintage) pose for every scene, no adjustment; one leanMeasure per scene feeds -POSE-RT-HYPER/-CORR2D/-COMPOSITE. The composite must then match the oracle CUAS-MERGED-CUAS-DBG renders tile-for-tile. Lean engine only. // By Claude on 07/04/2026 public boolean pose_stored = false; // DEBUG: decouple rendering/measurement from the LMA - use the STORED (oracle vintage) pose for every scene, no adjustment; one leanMeasure per scene feeds -POSE-RT-HYPER/-CORR2D/-COMPOSITE. The composite must then match the oracle CUAS-MERGED-CUAS-DBG renders tile-for-tile. Lean engine only. // By Claude on 07/04/2026
public boolean rend_test = false; // RT full-render product (CuasRender.testRenderSequence): per scene raw /jp4/ -> conditionSceneToGpu -> virtual-grid render at BORROWED stored pose+ERS rates -> -CUAS-RT-RENDER hyperstack [s00..s15, merged][scenes], comparable to -CUAS-INDIVIDUAL/MERGED-CUAS-DBG. NON-exclusive: runs AFTER the pose stage when both are ON (the pose stage is part of the RT cycle - Andrey 07/06/2026). // By Claude on 07/05/2026 public boolean rend_test = false; // RT full-render product (CuasRender.testRenderSequence): per scene raw /jp4/ -> conditionSceneToGpu -> virtual-grid render at BORROWED stored pose+ERS rates -> -CUAS-RT-RENDER hyperstack [s00..s15, merged][scenes], comparable to -CUAS-INDIVIDUAL/MERGED-CUAS-DBG. NON-exclusive: runs AFTER the pose stage when both are ON (the pose stage is part of the RT cycle - Andrey 07/06/2026). // By Claude on 07/05/2026
public boolean log_test = false; // LoG A/B with the RT render (CuasRender): also save -CUAS-RT-RENDER-LOG-ORACLE (product convolved with the EXISTING pre-DNN pixel LoG, LINEAR alpha=1) and -CUAS-RT-RENDER-LOG-FOLDED (same render, LoG folded into the GPU aberration kernels via CuasLogFold - no pixel convolution; originals restored). The aberration+LoG kernel-fold validation (RT-seed step 1b). // By Claude on 07/06/2026 public boolean log_test = false; // LoG A/B with the RT render (CuasRender): also save -CUAS-RT-RENDER-LOG-ORACLE (product convolved with the EXISTING pre-DNN pixel LoG, LINEAR alpha=1) and -CUAS-RT-RENDER-LOG-FOLDED (same render, LoG folded into the GPU aberration kernels via CuasLogFold - no pixel convolution; originals restored). The aberration+LoG kernel-fold validation (RT-seed step 1b). // By Claude on 07/06/2026
public boolean log_ident = false; // LoG ISOLATION test with the RT render (CuasRender): render with IDENTITY kernels (-CUAS-RT-RENDER-ID, aberrations skipped), pixel-LoG it (-ID-LOG-ORACLE), and render with PURE-LoG kernels (-LOG-ONLY). If -LOG-ONLY vs -ID-LOG-ORACLE residual persists, the fold/L0 is wrong; if it collapses to the wrap floor, the aberration-kernel interaction was responsible (Andrey 07/06/2026). // By Claude on 07/06/2026
public boolean dbg_fpixels = true; // save the ORACLE debug renders during ingest (prepareFpixels): -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) + -CUAS-MERGED-CUAS-DBG (save only - the merged render is the production input regardless). Was hardcoded. Turn OFF to save the render time and disk once the RT chain (-CUAS-RT-RENDER) is the trusted full render. // By Claude on 07/05/2026 public boolean dbg_fpixels = true; // save the ORACLE debug renders during ingest (prepareFpixels): -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) + -CUAS-MERGED-CUAS-DBG (save only - the merged render is the production input regardless). Was hardcoded. Turn OFF to save the render time and disk once the RT chain (-CUAS-RT-RENDER) is the trusted full render. // By Claude on 07/05/2026
public double fz_inter = 10000.0; // RT fat zero, INTER (pose/motion: scene x virtual-center correlation). DECOUPLED from the legacy gpu_fatz*/AUX switches (which stay untouched for non-RT/FOPEN). Value is for a single physical-pair amplitude; FZ ~ amplitude^2 in the GPU normalize - scale down x4..x16 for consolidated-average applications as needed. 10000 = the proven oracle INTER operating point (the lean code erroneously used the INTRA value before). // By Claude on 07/05/2026 public double fz_inter = 10000.0; // RT fat zero, INTER (pose/motion: scene x virtual-center correlation). DECOUPLED from the legacy gpu_fatz*/AUX switches (which stay untouched for non-RT/FOPEN). Value is for a single physical-pair amplitude; FZ ~ amplitude^2 in the GPU normalize - scale down x4..x16 for consolidated-average applications as needed. 10000 = the proven oracle INTER operating point (the lean code erroneously used the INTRA value before). // By Claude on 07/05/2026
public double fz_intra = 2000.0; // RT fat zero, INTRA (ranging/disparity: sensor-pair correlations within one scene). Reserved for the RT ranging path; same decoupling/scaling notes as fz_inter. // By Claude on 07/05/2026 public double fz_intra = 2000.0; // RT fat zero, INTRA (ranging/disparity: sensor-pair correlations within one scene). Reserved for the RT ranging path; same decoupling/scaling notes as fz_inter. // By Claude on 07/05/2026
...@@ -116,6 +117,8 @@ public class CuasRtParameters { ...@@ -116,6 +117,8 @@ public class CuasRtParameters {
"Full RT-chain render: raw jp4 -> conditioning -> virtual-grid render at borrowed stored poses/ERS; saves -CUAS-RT-RENDER [s00..s15+merged][scenes], comparable to the -CUAS-*-DBG oracle products. NON-exclusive: runs AFTER the pose stage when both are ON."); "Full RT-chain render: raw jp4 -> conditioning -> virtual-grid render at borrowed stored poses/ERS; saves -CUAS-RT-RENDER [s00..s15+merged][scenes], comparable to the -CUAS-*-DBG oracle products. NON-exclusive: runs AFTER the pose stage when both are ON.");
gd.addCheckbox ("RT render LoG A/B (folded kernels)", this.log_test, // By Claude on 07/06/2026 gd.addCheckbox ("RT render LoG A/B (folded kernels)", this.log_test, // By Claude on 07/06/2026
"With the RT render ON: also save -CUAS-RT-RENDER-LOG-ORACLE (the product convolved with the EXISTING pre-DNN pixel-domain LoG, LINEAR) and -CUAS-RT-RENDER-LOG-FOLDED (same render with the LoG FOLDED into the GPU aberration kernels - no pixel convolution; original kernels restored after). Compare offline: the aberration+LoG kernel-fold validation (roadmap RT-seed step 1b)."); "With the RT render ON: also save -CUAS-RT-RENDER-LOG-ORACLE (the product convolved with the EXISTING pre-DNN pixel-domain LoG, LINEAR) and -CUAS-RT-RENDER-LOG-FOLDED (same render with the LoG FOLDED into the GPU aberration kernels - no pixel convolution; original kernels restored after). Compare offline: the aberration+LoG kernel-fold validation (roadmap RT-seed step 1b).");
gd.addCheckbox ("RT render LoG isolation (identity krnl)", this.log_ident, // By Claude on 07/06/2026
"With the RT render ON: render with IDENTITY kernels (-ID, aberrations skipped), apply the pixel LoG (-ID-LOG-ORACLE), then render with PURE-LoG kernels (-LOG-ONLY). Isolates the LoG fold mechanism from the aberration-kernel content: persistent -LOG-ONLY vs -ID-LOG-ORACLE residual = the fold is wrong; collapse to the wrap floor = kernel interaction. Two extra render passes.");
gd.addCheckbox ("Save oracle DBG renders (11GB)", this.dbg_fpixels, // By Claude on 07/05/2026 gd.addCheckbox ("Save oracle DBG renders (11GB)", this.dbg_fpixels, // By Claude on 07/05/2026
"Save -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) and -CUAS-MERGED-CUAS-DBG during ingest. Turn OFF to save render time and disk once -CUAS-RT-RENDER (RT render test) is the trusted full render."); "Save -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) and -CUAS-MERGED-CUAS-DBG during ingest. Turn OFF to save render time and disk once -CUAS-RT-RENDER (RT render test) is the trusted full render.");
gd.addNumericField("RT fat zero INTER (pose/motion)", this.fz_inter, 1,9,"", // By Claude on 07/05/2026 gd.addNumericField("RT fat zero INTER (pose/motion)", this.fz_inter, 1,9,"", // By Claude on 07/05/2026
...@@ -260,6 +263,7 @@ public class CuasRtParameters { ...@@ -260,6 +263,7 @@ public class CuasRtParameters {
this.pose_stored = gd.getNextBoolean(); // By Claude on 07/04/2026 this.pose_stored = gd.getNextBoolean(); // By Claude on 07/04/2026
this.rend_test = gd.getNextBoolean(); // By Claude on 07/05/2026 this.rend_test = gd.getNextBoolean(); // By Claude on 07/05/2026
this.log_test = gd.getNextBoolean(); // By Claude on 07/06/2026 this.log_test = gd.getNextBoolean(); // By Claude on 07/06/2026
this.log_ident = gd.getNextBoolean(); // By Claude on 07/06/2026
this.dbg_fpixels = gd.getNextBoolean(); // By Claude on 07/05/2026 this.dbg_fpixels = gd.getNextBoolean(); // By Claude on 07/05/2026
this.fz_inter = gd.getNextNumber(); // By Claude on 07/05/2026 this.fz_inter = gd.getNextNumber(); // By Claude on 07/05/2026
this.fz_intra = gd.getNextNumber(); // By Claude on 07/05/2026 this.fz_intra = gd.getNextNumber(); // By Claude on 07/05/2026
...@@ -344,6 +348,7 @@ public class CuasRtParameters { ...@@ -344,6 +348,7 @@ public class CuasRtParameters {
properties.setProperty(prefix+"pose_stored", this.pose_stored+""); // boolean // By Claude on 07/04/2026 properties.setProperty(prefix+"pose_stored", this.pose_stored+""); // boolean // By Claude on 07/04/2026
properties.setProperty(prefix+"rend_test", this.rend_test+""); // boolean // By Claude on 07/05/2026 properties.setProperty(prefix+"rend_test", this.rend_test+""); // boolean // By Claude on 07/05/2026
properties.setProperty(prefix+"log_test", this.log_test+""); // boolean // By Claude on 07/06/2026 properties.setProperty(prefix+"log_test", this.log_test+""); // boolean // By Claude on 07/06/2026
properties.setProperty(prefix+"log_ident", this.log_ident+""); // boolean // By Claude on 07/06/2026
properties.setProperty(prefix+"dbg_fpixels", this.dbg_fpixels+""); // boolean // By Claude on 07/05/2026 properties.setProperty(prefix+"dbg_fpixels", this.dbg_fpixels+""); // boolean // By Claude on 07/05/2026
properties.setProperty(prefix+"fz_inter", this.fz_inter+""); // double // By Claude on 07/05/2026 properties.setProperty(prefix+"fz_inter", this.fz_inter+""); // double // By Claude on 07/05/2026
properties.setProperty(prefix+"fz_intra", this.fz_intra+""); // double // By Claude on 07/05/2026 properties.setProperty(prefix+"fz_intra", this.fz_intra+""); // double // By Claude on 07/05/2026
...@@ -428,6 +433,7 @@ public class CuasRtParameters { ...@@ -428,6 +433,7 @@ public class CuasRtParameters {
if (properties.getProperty(prefix+"pose_stored")!=null) this.pose_stored=Boolean.parseBoolean(properties.getProperty(prefix+"pose_stored")); // By Claude on 07/04/2026 if (properties.getProperty(prefix+"pose_stored")!=null) this.pose_stored=Boolean.parseBoolean(properties.getProperty(prefix+"pose_stored")); // By Claude on 07/04/2026
if (properties.getProperty(prefix+"rend_test")!=null) this.rend_test=Boolean.parseBoolean(properties.getProperty(prefix+"rend_test")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"rend_test")!=null) this.rend_test=Boolean.parseBoolean(properties.getProperty(prefix+"rend_test")); // By Claude on 07/05/2026
if (properties.getProperty(prefix+"log_test")!=null) this.log_test=Boolean.parseBoolean(properties.getProperty(prefix+"log_test")); // By Claude on 07/06/2026 if (properties.getProperty(prefix+"log_test")!=null) this.log_test=Boolean.parseBoolean(properties.getProperty(prefix+"log_test")); // By Claude on 07/06/2026
if (properties.getProperty(prefix+"log_ident")!=null) this.log_ident=Boolean.parseBoolean(properties.getProperty(prefix+"log_ident")); // By Claude on 07/06/2026
if (properties.getProperty(prefix+"dbg_fpixels")!=null) this.dbg_fpixels=Boolean.parseBoolean(properties.getProperty(prefix+"dbg_fpixels")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"dbg_fpixels")!=null) this.dbg_fpixels=Boolean.parseBoolean(properties.getProperty(prefix+"dbg_fpixels")); // By Claude on 07/05/2026
if (properties.getProperty(prefix+"fz_inter")!=null) this.fz_inter=Double.parseDouble(properties.getProperty(prefix+"fz_inter")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"fz_inter")!=null) this.fz_inter=Double.parseDouble(properties.getProperty(prefix+"fz_inter")); // By Claude on 07/05/2026
if (properties.getProperty(prefix+"fz_intra")!=null) this.fz_intra=Double.parseDouble(properties.getProperty(prefix+"fz_intra")); // By Claude on 07/05/2026 if (properties.getProperty(prefix+"fz_intra")!=null) this.fz_intra=Double.parseDouble(properties.getProperty(prefix+"fz_intra")); // By Claude on 07/05/2026
...@@ -515,6 +521,7 @@ public class CuasRtParameters { ...@@ -515,6 +521,7 @@ public class CuasRtParameters {
cp.pose_stored = this.pose_stored; // By Claude on 07/04/2026 cp.pose_stored = this.pose_stored; // By Claude on 07/04/2026
cp.rend_test = this.rend_test; // By Claude on 07/05/2026 cp.rend_test = this.rend_test; // By Claude on 07/05/2026
cp.log_test = this.log_test; // By Claude on 07/06/2026 cp.log_test = this.log_test; // By Claude on 07/06/2026
cp.log_ident = this.log_ident; // By Claude on 07/06/2026
cp.dbg_fpixels = this.dbg_fpixels; // By Claude on 07/05/2026 cp.dbg_fpixels = this.dbg_fpixels; // By Claude on 07/05/2026
cp.fz_inter = this.fz_inter; // By Claude on 07/05/2026 cp.fz_inter = this.fz_inter; // By Claude on 07/05/2026
cp.fz_intra = this.fz_intra; // By Claude on 07/05/2026 cp.fz_intra = this.fz_intra; // By Claude on 07/05/2026
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment