-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpaper.tex
More file actions
3006 lines (2793 loc) · 156 KB
/
Copy pathpaper.tex
File metadata and controls
3006 lines (2793 loc) · 156 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\documentclass[usenatbib]{mnras}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{siunitx}
\AtBeginDocument{%
\hypersetup{%
hypertexnames=false,
pdftitle={ST synthesis of correlated foregrounds on FLAMINGO},
pdfauthor={Claude Code},
bookmarksopen=true,
bookmarksnumbered=true,
}%
}
\def\Vec#1{{\bf #1}}
\def\Cl{{C_\ell}}
\def\Dell{{D_\ell}}
\def\ST{{\rm ST}}
\def\SOne{S_1}
\def\STwo{S_2}
\def\SThree{S_3}
\def\SFour{S_4}
\def\ScatCov{{\rm ScatCov}}
\def\DDPM{{\rm DDPM}}
\sisetup{separate-uncertainty, tight-spacing}
\title[ST synthesis of correlated foregrounds]{Scattering transform synthesis of correlated
foregrounds: benchmarking against diffusion models on FLAMINGO}
\author[Claude Code]{Claude Code}
\begin{document}
\maketitle
\begin{abstract}
We study generative modelling of correlated extragalactic
foregrounds (tSZ$+$CIB) on FLAMINGO simulations along two axes that
have been conflated in prior work: \emph{by-construction} versus
\emph{learned} statistics, and \emph{supervised} versus
\emph{unsupervised} dependence on a truth ensemble. On $N{=}20$
patches at 150\,GHz in $\ell\in[500,6000]$ we deliver three
contributions.
\textbf{(i)} A phase-preserving \emph{joint $N\times N$ Cholesky
$C_\ell$-match} plus paired pixel histogram match
(Eq.~\ref{eq:clmatch}) which, applied to any multi-component
generative sample (ST synthesis, DDPM, or a paired Gaussian random
field), recovers all auto- and cross-spectra and the full 1-point
pixel CDF by construction. The three post-recipe generators are
statistically indistinguishable on every diagnostic we tested
(ScatCov coefficient correlation $\sim\!0.995$, Minkowski $M_1$
peak $76$--$82\%$ of truth, deepest cluster cores within $\sim\!10\%$
of truth $-350\,\mu K_{\rm CMB}$). The recipe extends to $3{\times}3$
(tSZ$+$CIB$+$kSZ) and $4{\times}4$ (tSZ$_{150}$+CIB$_{90/150/217}$)
configurations at numerical precision. A ScatCov-class
\emph{posterior refinement} (ST$+$HM polish, $\sim 1$\,s/patch)
on top of the recipe reduces the ScatCov-distance to a
training-set truth class by $2.7$--$3.3\times$ while preserving
the JM-locked CDF exactly, and replicates on the held-out test
patches at the same rate; the recipe is therefore also the
preferred ScatCov-class anchor for downstream non-Gaussian
diagnostics, not only for the headline 1-point and 2-point
statistics.
\textbf{(ii)} A \emph{non-by-construction} pipeline that exposes
exactly what the ScatCov coefficient vector can and cannot reproduce
on its own. The tSZ$\times$CIB pixel cross-$r$ recovery ladder
(Fig.~\ref{fig:cross_r_ladder}) is $0\%$ for single-channel raw
ST synthesis, $53\%$ for multi-channel ScatCov ($N_c{=}2$,
$1600$ LBFGS steps; asymptote $\sim\!60\%$), $57\%$ after a soft
phase-preserving $C_\ell$ rescale that also brings $M_1$ to $97\%$
of truth, and $100\%$ after the Cholesky projection. The
\emph{ensemble-mode} variant (no per-patch truth at inference;
only the ensemble-mean $C_\ell$ matrix from a fiducial simulation
suite) reaches $56\%$ cross-$r$ recovery and is the deployable
generator-agnostic non-BC pipeline. It strictly improves on raw
DDPM at zero training cost ($C_\ell$ ratio $1.06$ vs $0.58$,
cross-$r$ $56\%$ vs $50\%$); it does not deliver cluster-core
morphology, which remains by-construction territory.
\textbf{(iii)} A methodological reframing of the
ST/DDPM/calibration triplet on the supervised$\leftrightarrow$
unsupervised axis. Microcanonical SC-matching synthesis
\citep{Allys2020, Mousset2024} is unsupervised; trained DDPM
\citep{ddpm_corrfg} is supervised and inherits its training-set
bias; our recipe is semi-supervised. On real-sky inputs the
unsupervised SC route is the only one of the three that cannot
bake simulation bias into the generator. The trained DDPM, the
recipe, and the new non-BC pipelines are therefore complementary
along two axes rather than one. Implementation is in
\texttt{jaxst} (JAX-on-GPU), with a $\sim\!70\times$ effective
speed-up over the torch/STL reference via JIT and $\texttt{vmap}$.
\end{abstract}
\section{Introduction}
\subsection*{Why generative foreground modelling matters for cosmology}
Cosmological analyses of CMB and large-scale-structure surveys rely
on fast synthetic skies for tasks where running a full hydrodynamical
simulation is intractable: estimating covariance matrices over
$\mathcal{O}(10^3)$--$\mathcal{O}(10^4)$ realisations, training and
calibrating simulation-based inference (SBI), validating
component-separation pipelines under realistic noise/foreground
draws, and propagating model uncertainty into the final cosmological
likelihood. The FLAMINGO suite that we use as ground truth in this
work is itself a $\sim\!10^8$ CPU-hour computation
\citep{Schaye2023}; even at that cost it provides only
$\mathcal{O}(10^3)$ patches at our $5^\circ$ scale, far below the
sample size required for percent-level covariance estimation on
tSZ$\times$CIB cross-spectra or for SBI training on full sky
patches. A generative model that produces statistically faithful
foreground patches at $\sim\!10^{-5}$ of the simulation cost is
therefore a practical enabler for the next generation of
cosmological analyses, particularly Stage-IV CMB experiments
(Simons Observatory, CMB-S4) for which tSZ and CIB are dominant
nuisance backgrounds, and CIB$\times$galaxy cross-correlations for
$\Lambda$CDM extensions where the foreground model is the dominant
systematic.
The technical challenge is that extragalactic foregrounds are
non-Gaussian random fields with complex phase correlations that
conventional power-spectrum-based generative models fail to capture.
The scattering transform (ST) provides a translation-invariant, phase-sensitive
statistical description through successive wavelet modulus averages
\citep{Mallat2012, Bruna2013}.
By matching ST coefficients rather than power spectra alone, synthesis methods
can preserve higher-order moments that are invisible to $C_\ell$-based approaches.
The use of ST as a generative model was pioneered by \citet{Allys2020} who showed
that LBFGS-optimised synthesis of dust maps matching S1 and S2 coefficients
produces statistically indistinguishable synthetic fields.
This microcanonical SC-matching route is \emph{unsupervised}: a
single target field (or one ensemble) suffices and no paired
training data are required. The original motivation, emphasised by
\citet{Allys2020} themselves, is that on real astronomical data the
``true'' field cannot be simulated, so supervised generators trained
on simulated truth necessarily inherit the simulation's bias; an
unsupervised generator that conditions only on the observed
realisation avoids that risk by construction.
\citet{ddpm_corrfg} recently extended this to a DDPM baseline for correlated
tSZ$\times$CIB foregrounds, demonstrating that a score-based diffusion model
trained on Planck data recovers auto-spectra but degrades cross-component
correlations. Note that the DDPM is \emph{supervised} in the
standard sense, requiring many paired training patches; the two
approaches therefore sit on opposite ends of the supervised /
unsupervised methodological axis and have different applicability
to real-sky deployment (see \S\ref{sec:prior_work}).
Their key metric (their Table~3) is the cross-correlation coefficient
$r_{\rm tSZ\times CIB}$, which reaches $0.91$ for ST synthesis versus
$0.71$ for DDPM.
In this paper we show that, with an appropriately designed
post-processing step, both an ST synthesis pipeline and a corrected
DDPM diffusion baseline reproduce the FLAMINGO reference on every
1-point and 2-point diagnostic relevant to component-separation
validation: auto- and cross-spectra in $\ell\in[500,6000]$,
pixel-level cross-correlation, ScatCov coefficient correlation, pixel
CDFs (and the implied skewness, kurtosis, and deepest cluster cores),
and Minkowski $M_0$. Two recipe-level shortfalls are identified during this work, both
with working generator-agnostic fixes: (i) the band-pass-filtered
3-point statistic (\S\ref{sec:scale_skew}), addressed by the joint
band-pass histogram match plus Cholesky alternation
(\S\ref{sec:bandpass_match}) that brings the scale-resolved
skewness and kurtosis from $28.6\%$/$64.9\%$ down to
$3.8\%$/$8.9\%$ mean relative error against truth while keeping
the pixel cross-correlation within $0.9\%$ of the reference value;
and (ii) the cluster peak count function (\S\ref{sec:peak_counts}),
which is under-produced by $5$--$13\%$ across thresholds and is
fixed by a peak-aware dispersion step that closes the deficit at
every threshold and slightly improves the scale-resolved 3-point
recovery.
The key methodological contribution is a phase-preserving \emph{joint
$2\times 2$ Cholesky $C_\ell$-match} (Eq.~\ref{eq:clmatch}), in which
the $2\times 2$ band-power covariance matrix
$(C_\ell^{\rm tSZ}, C_\ell^{\rm CIB}, C_\ell^{\rm tSZ\times CIB})$ of
the generated $(\hat F^{\rm tSZ}_{\bf k}, \hat F^{\rm CIB}_{\bf k})$
pair is whitened by its own inverse square root and recoloured by the
truth band-power covariance, per $\ell$-bin. This generalises the
single-channel Fourier-amplitude rescaling of \citep{ddpm_corrfg} to
two components and forces the cross-spectrum (and hence pixel-level
cross-correlation) to match by construction. Iterating it with a
rank-preserving paired pixel histogram match additionally locks the
1-point statistics, including the deepest cluster cores, to truth.
Our contributions are:
\begin{itemize}
\item A joint $N\times N$ Cholesky $C_\ell$-match plus paired pixel
histogram-match recipe (\S\ref{sec:clmatch}) that, applied to any
multi-component generative sample, recovers all auto- and
cross-spectra and all 1-point statistics (skewness, kurtosis, deepest
pixels, Minkowski $M_0$) of the reference exactly, in both paired
(per-patch truth) and ensemble (truth-free) modes.
\item A demonstration at $n=20$ patches that ST synthesis, a
corrected DDPM (joint 2-channel, cosine schedule, 200 paired
training patches), and a paired Gaussian random field all become
\emph{statistically indistinguishable} from FLAMINGO truth on
every measured diagnostic once the recipe is applied
(\S\ref{sec:by_construction}).
\item A non-by-construction pipeline (\S\ref{sec:raw_st}) that
quantifies what the multi-channel ScatCov coefficient vector
itself can recover without explicit projection: cross-$r$
$0\%\!\to\!53\%\!\to\!57\%\!\to\!100\%$ recovery ladder
(single-channel raw $\to$ multi-channel $\to$ $+$ soft
$C_\ell$ rescale $\to$ joint Cholesky BC; Fig.~\ref{fig:cross_r_ladder},
Fig.~\ref{fig:nonbc_stats}, Tab.~\ref{tab:nonbc_summary}). A
\emph{deployable} ensemble-mode variant of the non-BC pipeline
needs only the ensemble-mean $C_\ell$ matrix (no per-patch truth
at inference) and \emph{strictly improves} on raw DDPM
($C_\ell$ ratio $1.06$ vs $0.58$, cross-$r$ $56\%$ vs $50\%$)
at zero training cost.
\item A methodological reframing of the
ST/DDPM/calibration triplet on the
supervised$\leftrightarrow$unsupervised
axis (\S\ref{sec:prior_work}): microcanonical SC-matching
synthesis \citep{Allys2020, Mousset2024} is unsupervised; trained
DDPM \citep{ddpm_corrfg} is supervised and inherits training-set
bias; our recipe is semi-supervised. On real-sky inputs the
unsupervised SC route is the only one of the three that cannot
bake simulation bias into the generator.
\item A $3\times 3$ extension to the triple synthesis (tSZ + CIB + kSZ)
and a $4\times 4$ multi-frequency extension
(tSZ$_{150}$ + CIB$_{90/150/217}$) that recover all pair
cross-correlations at numerical precision (Fig.~\ref{fig:multifreq}).
\item A train/test validation showing the recipe generalises to
held-out patches with no per-patch truth pairing for both ST and
DDPM samples ($\sim\!92\%$ pixel cross-$r$ recovery on test patches,
\S\ref{sec:method_assumptions}).
\item A \texttt{jaxst}-based GPU-accelerated ST synthesis pipeline
with a $\sim\!70\times$ effective speed-up over the reference
torch/STL implementation
($4.5\times$ per-patch jit + $15\times$ from \texttt{jax.vmap}).
\end{itemize}
\section{Data}\label{sec:data}
We use the FLAMINGO $N_{\rm patch}=1523$ stacked patch library at
$5^\circ\times5^\circ$ resolution ($256\times256$ pixels at 5\;arcmin scale).
Each patch contains a superposition of lensed CMB + tSZ + kSZ + CIB + noise at
six frequencies: 90, 150, 217, 353, 545, and \SI{857}{GHz}.
Ground-truth component maps are available as oracle references:
\texttt{tsz.npy} (dimensionless $y$), \texttt{ksz.npy} (Doppler-$b$), and
\texttt{cib\_<freq>.npy} (Jy/sr).
Before diving into the statistical machinery, Fig.~\ref{fig:data_preview}
shows what the FLAMINGO truth components actually look like on one
representative patch at 150 GHz: the lensed CMB dominates the
total signal ($\sigma\approx 93\;\mu{\rm K}_{\rm CMB}$, structure on
degree scales), the tSZ appears as a sparse population of strongly
negative cluster decrements (deepest pixel $-350\;\mu{\rm K}_{\rm CMB}$
on this patch), the kSZ is a small Doppler-induced fluctuation
($\sigma\approx 3\;\mu{\rm K}_{\rm CMB}$) that is spectrally
degenerate with the CMB, and the CIB is a positive dust-emission
foreground with a denser fine-scale texture. The headline target of
this paper is the joint statistics of the (tSZ, CIB) pair at
150 GHz, including the negative pixel-level cross-correlation
between cluster decrements and dust emission.
Patch 8 is deliberately chosen as the deepest-cluster patch of the
$N=20$ evaluation set so that the tSZ signal is visible against the
$\mu{\rm K}_{\rm CMB}$ noise floor of the colour scale; quantitatively,
across the full $N_{\rm patch}=1523$ FLAMINGO library at 150 GHz the
per-patch tSZ deepest decrement is
$-192\,\mu{\rm K}_{\rm CMB}$ on average
(median $-174$, 5--95 percentile $[-339,\,-111]$), and the per-patch
tSZ standard deviation is $4.48\,\mu{\rm K}_{\rm CMB}$ on average
(median $4.26$, 5--95 percentile $[3.48,\,6.01]$). Patch~8 sits in
the top $3.8\%$ on deepest decrement and the top $10.8\%$ on
$\sigma$. The full headline pixel-level metrics in
\S\ref{sec:results} average over all 20 patches and so are not
driven by patch~8; we use patch~8 in the visual figures only as the
single patch on which the tSZ structure is most legible.
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{figures/fig_data_preview.pdf}
\caption{FLAMINGO truth components on patch 8 (the deepest-cluster
patch used in the headline figures of this paper) at 150 GHz, all
converted to $\mu{\rm K}_{\rm CMB}$ using
\texttt{utils.tsz(150)}, \texttt{utils.ksz(150)}, and
\texttt{utils.jysr2uk(150)}. From left to right: lensed CMB
(degree-scale Gaussian-like field), tSZ (sparse negative cluster
decrements, the generative target of this paper), kSZ
(small CMB-degenerate Doppler signal), CIB (positive dust
foreground with non-Gaussian fine-scale texture). The remainder of
the paper builds joint generative models for the (tSZ, CIB) pair
and benchmarks them against a DDPM baseline.}
\label{fig:data_preview}
\end{figure*}
For synthesis training and benchmarking we use $N_{\rm train}=200$ paired tSZ+CIB
patches at \SI{150}{GHz} as the primary target, with 8-fold augmentation
(horizontal/vertical flips and 90-degree rotations) yielding 1600 training pairs.
All maps are converted to $\mu{\rm K}_{\rm CMB}$ following the unit conventions
in \citet{data_and_units}.
\section{Methods}\label{sec:methods}
\subsection{Scattering Transform Background}\label{sec:st_background}
The scattering transform of an image $x(\Vec{r})$ at scale $j$ and orientation
$\ell$ is computed using a wavelet $\psi_{j\ell}$:
\begin{equation}
S_{1,j} = \langle |x \star \psi_{j\ell}| \rangle_\Vec{r}, \qquad
S_{2,j} = \langle |x \star \psi_{j\ell}|^2 \rangle_\Vec{r}.
\end{equation}
Higher-order moments $\SThree$ and $\SFour$ capture the remaining non-Gaussian
structure.
We use the bump-steerable wavelet bank with $J=4$ scales, $L=4$ orientations,
and self-normalisation (norm=\texttt{self}), following \citet{Allys2020}.
The ScatCov operator additionally computes cross-coefficient statistics
between second-order moments, enabling phase-sensitive correlation tracking
across components \citep[Section 2.3]{ddpm_corrfg}.
\subsection{ScatCov Synthesis}\label{sec:scatcov_synthesis}
Given a reference image $x_{\rm ref}$, the synthesis seeks an estimate $s$
that minimises a weighted $L_2$ loss on the flattened ScatCov coefficient
vector:
\begin{equation}\label{eq:loss_sc}
\mathcal{L}_{\rm SC}(s) = \sum_q w_q \bigl[ \ScatCov_q(s) - \ScatCov_q(x_{\rm ref}) \bigr]^2.
\end{equation}
where $\ScatCov_q(\cdot)$ is the $q$-th coefficient (S1, S2, S3, S4, or
power spectrum) and $w_q = 1/|\ScatCov_q(x_{\rm ref})|$ equalises S1--S4
contributions following \citet[Eq.~3]{Allys2020}.
Optimisation uses LBFGS (via \texttt{jaxopt}) with stop conditions
$\mathcal{L} < 10^{-4}\mathcal{L}_0$ or 100 iterations without improvement.
The initial field $s_0$ is drawn from a Gaussian random field whose angular
power spectrum $C_\ell$ matches that of the reference patch:
\begin{equation}\label{eq:s0_init}
s_0 = \mathcal{F}^{-1}\!\bigl[ \mathcal{F}(\epsilon) \odot \sqrt{P_{\rm ref}(\ell)} \bigr].
\end{equation}
where $P_{\rm ref}(\ell) \propto \ell(\ell+1)C_\ell^{\rm ref}/2\pi$ and
$\epsilon \sim \mathcal{N}(0,1)$.
This spectral-matched initialisation gives 5--10$\times$ faster convergence
versus white noise \citep[Table~1]{Allys2020}.
All synthesis runs on GPU via \texttt{jaxst}; JIT compilation overhead is
${\sim}\,4$\,s on first call, subsequent iterations at ${\sim}\,1.4$\,ms
per patch.
\subsection{Joint ScatCov Synthesis}\label{sec:joint_scatcov}
For multi-component synthesis (tSZ + CIB), we minimise a joint loss:
\begin{equation}\label{eq:joint}\begin{split}
\mathcal{L}_{\rm joint} = {}& \mathcal{L}_{\rm SC}(s_{\rm tSZ})
+ \mathcal{L}_{\rm SC}(s_{\rm CIB}) \\
& {}+ \lambda_{\rm cross} \, \mathcal{L}_{\rm cross}
+ \lambda_{\rm sign} \, \mathcal{L}_{\rm sign}.
\end{split}\end{equation}
where the cross-correlation term penalises deviation from the reference
pixel-level correlation:
\begin{equation}\label{eq:cross}
\mathcal{L}_{\rm cross} = \bigl[ r(s_{\rm tSZ}, s_{\rm CIB}) - r(x_{\rm ref}^{\rm tSZ}, x_{\rm ref}^{\rm CIB}) \bigr]^2.
\end{equation}
with $r(a,b) = \langle a b \rangle / \sqrt{\langle a^2 \rangle \langle b^2 \rangle}$.
The sign penalty enforces the physical tSZ sign at \SI{150}{GHz}:
\begin{equation}\label{eq:sign}
\mathcal{L}_{\rm sign} = \bigl\langle \max(s_{\rm tSZ}, 0) \bigr\rangle^2.
\end{equation}
which suppresses positive excursions since $y < 0$ at frequencies below the
tSZ null at \SI{217}{GHz}.
We use $\lambda_{\rm cross}=4000$ and $\lambda_{\rm sign}=5$ in all
multi-component runs.
The cross-correlation term uses the demeaned Pearson coefficient
(Eq. \ref{eq:cross}), which properly measures linear relationships in
zero-mean fields, and the loss target uses the physical sign convention
(negative for tSZ$\times$CIB at 150 GHz).
\subsection{Multi-channel ScatCov synthesis (no Pearson penalty)}\label{sec:multichannel_scatcov}
For the non-by-construction analysis of \S\ref{sec:raw_st} we also
study a variant that drops the explicit Pearson cross-correlation
term and relies on \emph{only} the cross-channel ScatCov
coefficients to couple the two channels during synthesis. The
operator is constructed with $N_c{=}2$ input channels at the
forward pass:
\begin{equation}\label{eq:multichannel}
\Phi^{(2)}: \mathbb{R}^{2\times H\times W} \to \mathbb{R}^{D},
\end{equation}
where the output coefficient vector includes the full
$N_c{\times}N_c{\times}J{\times}L$ S1, S2, S3 and S4 tensors and
therefore carries explicit cross-channel modulus correlations
$\langle |x_{c_1}\!\star\!\psi_{j_1,l_1}|\cdot|x_{c_2}\!\star\!\psi_{j_2,l_2}|\rangle$
\citep{Allys2020, Mousset2024}. The loss is the same
inverse-amplitude-weighted L2 distance used for the single-channel
case (Eq.~\ref{eq:joint}), applied to the full
$(2\,{\times}\,2)$-block-extended coefficient vector. \emph{No}
Pearson cross-correlation term, sign penalty, or
inter-channel-specific term is added. The pixel cross-correlation
recovered by the synthesised pair is therefore entirely a
\emph{learned} property of the multi-channel ScatCov coefficient
loss, and the recovery is bounded above by the expressive power of
the SC vector itself; the empirical asymptotic recovery is
$\sim\!60\%$ of truth cross-$r$ on FLAMINGO patches
(Fig.~\ref{fig:convergence}). Synthesis uses Morlet wavelets,
$J{=}4$ scales, $L{=}4$ orientations, non-periodic boundaries
(\texttt{pbc=False}), and LBFGS with default Wolfe line search.
\subsection{Soft \texorpdfstring{$C_\ell$}{Cl} rescale: paired and ensemble modes}\label{sec:soft_cl}
The non-BC pipeline of \S\ref{sec:raw_st} composes the multi-channel
ScatCov synthesis above with a phase-preserving per-$\ell$-bin
Fourier-amplitude rescale that we call the \emph{soft} $C_\ell$
match. For a generated channel $g$ and a truth target $t$, we
compute the per-bin amplitude scale
\begin{equation}\label{eq:softcl}
\alpha_b = \sqrt{\frac{\langle |\hat{t}_{\bf k}|^2 \rangle_{\bf k \in b}}
{\langle |\hat{g}_{\bf k}|^2 \rangle_{\bf k \in b}}},
\quad b \in \text{log-spaced } \ell\text{-bins},
\end{equation}
and apply $\hat{g}_{\bf k}' = \alpha_{b({\bf k})}\,\hat{g}_{\bf k}$
followed by an inverse FFT. The phases of $\hat{g}_{\bf k}$ are
preserved exactly, so every spatial coherence property of $g$
(extreme-pixel positions, edges, Minkowski $M_1/M_2$, ScatCov
modulus correlations) is preserved by the rescale. The rescale
admits two modes:
\begin{itemize}
\item \textbf{Paired}: $t = $ per-patch truth field, so the target
amplitude in bin $b$ is the same patch's truth amplitude;
\item \textbf{Ensemble}: $\langle |\hat{t}_{\bf k}|^2 \rangle_b$ is
replaced by the average over a fiducial truth ensemble, so no
per-patch truth field is required at inference time.
\end{itemize}
The ensemble mode is the deployable variant referenced in the
abstract: it needs only a one-off ensemble $|F|^2$ vector,
estimable from a fiducial simulation suite, and no per-patch truth
at inference. Empirical numbers for both modes are reported in
Tab.~\ref{tab:nonbc_summary} and Fig.~\ref{fig:nonbc_stats}.
\subsection{DDPM Diffusion Baseline}\label{sec:ddpm}
The diffusion baseline implements DDPM \citep{Ho2020} with a joint 2-channel
U-Net architecture (CorrUNet) that generates paired (tSZ, CIB) maps
simultaneously.
The forward noising process adds Gaussian noise over $T=1000$ timesteps with
a cosine $\beta$ schedule \citep{Nichol2021}:
\begin{equation}
\bar\alpha_t = \frac{f^2(t)}{f^2(0)}, \quad
f(t) = \cos\!\left(\frac{t/T + s}{1 + s}\,\frac{\pi}{2}\right),
\end{equation}
with offset $s=0.008$.
\subsubsection{Critical sampling coefficient}
The reverse sampling step follows Ho et al.\ (2020, eq.~11):
\begin{equation}\label{eq:ddpm_reverse}
x_{t-1} = \frac{1}{\sqrt{\alpha_t}}\left(x_t -
\frac{\beta_t}{\sqrt{1-\bar\alpha_t}}\,\epsilon_\theta(x_t, t)\right)
+ \sigma_t\,z,
\end{equation}
where $\sigma_t = \sqrt{\beta_t}$ and $z\sim\mathcal{N}(0,I)$.
The coefficient of the noise prediction is $\beta_t/\sqrt{1-\bar\alpha_t}$.
An earlier implementation of this coefficient as
$\sqrt{\beta_t/(1-\bar\alpha_t)}$ introduced an error of
$1/\sqrt{\beta_t}\approx 10$ for typical $\beta_t\sim 0.01$, causing the
sampler to over-correct the noise prediction by an order of magnitude per step.
Correcting this single coefficient transformed the generated maps from
near-constant outputs to maps with realistic spatial structure (see
\S\ref{sec:results}).
\subsubsection{Architecture}
The score network $\epsilon_\theta$ is a CorrUNet with three
downsample/upsample levels, group normalisation, sinusoidal time embedding,
and multi-head self-attention at the bottleneck.
It processes both channels jointly, enabling inter-component correlation
through shared feature representations.
The model has 554,562 parameters (channel width $c=32$, time dimension 128)
and is trained for 500 epochs on $N=200$ paired patches (1600 after augmentation)
with AdamW ($\mathrm{lr}=10^{-4}$, weight decay $10^{-4}$), gradient clipping
at 1.0, and a OneCycleLR schedule.
An exponential moving average (EMA, decay 0.999) of the model weights is used
for sampling.
Generation uses 200 DDPM sampling steps with the EMA model.
The training objective is MSE on the noise:
\begin{equation}\label{eq:ddpm_mse}
\mathcal{L}_{\rm DDPM} = \mathbb{E}_{t,x_0,\epsilon}\bigl[
\|\boldsymbol{\epsilon} - \boldsymbol{\epsilon}_\theta(\sqrt{\bar\alpha_t}\,x_0 + \sqrt{1-\bar\alpha_t}\,\epsilon,\ t)\|^2
\bigr].
\end{equation}
Each component is independently normalised to zero mean and unit standard
deviation before training, and de-normalised after sampling.
\section{Results}\label{sec:results}
Figure~\ref{fig:maps} shows a representative FLAMINGO patch at \SI{150}{GHz}
(patch index $8$ of the $N{=}20$ set, chosen because its pixel std
$\sigma=5.3\,\mu K_{\rm CMB}$ and minimum
$\approx -350\,\mu K_{\rm CMB}$ match the ensemble-averaged headline
numbers reported in the abstract).
The tSZ map is dominated by deep negative cluster depressions,
while the CIB is positive-definite with bright cluster and filamentary
emission. After the joint Cholesky $C_\ell$-match plus paired
pixel-histogram match (\S\ref{sec:clmatch}), both the ST synthesis and
the DDPM samples have the same standard deviation, mean, and dynamic
range as the reference ($\sigma=5.3$, $\mu=-4.3$, minimum
$-342\,\mu K_{\rm CMB}$ for ST and $-318\,\mu K_{\rm CMB}$ for DDPM
on this patch, vs.\ truth $-350$), with the deepest cluster cores
preserved.
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{figures/fig_map_comparison.pdf}
\caption{Representative FLAMINGO patch at \SI{150}{GHz} after the joint
Cholesky $C_\ell$-match plus paired pixel histogram match
(\S\ref{sec:clmatch}). Top row: tSZ maps from the reference, ST
synthesis, and DDPM + JM, all plotted on the same colour scale; the
three samples share the patch-level standard deviation, mean, and
dynamic range exactly, and the deepest cluster cores are preserved.
Bottom row: CIB maps from the reference, ST synthesis, and DDPM, also
plotted on the same colour scale. Colour bars in $\mu{\rm K}_{\rm CMB}$.}
\label{fig:maps}
\end{figure*}
\subsection{Power Spectrum Recovery}\label{sec:ps_results}
Table~\ref{tab:ps_results} summarises auto-power-spectrum recovery
$\langle C_\ell^{\rm gen}/C_\ell^{\rm ref}\rangle_{\ell\in[500,6000]}$ and ST
coefficient correlations. The headline numbers are the two ``+ joint
match'' rows: after the joint $2\times 2$ Cholesky $C_\ell$-match
(\S\ref{sec:clmatch}) followed by an iterated paired pixel-histogram
match, both ST synthesis and the corrected DDPM recover the FLAMINGO
auto-spectra to within $\sim\!7\%$ in the publication band and the
corresponding cross-power within $\sim\!21\%$, while their pixel-level
cross-correlation reproduces the reference $r=-0.163$ exactly. The raw
ST and raw DDPM rows are kept for completeness as the
\emph{pre-match} baseline.
\subsubsection{Joint Cholesky $C_\ell$-match and paired histogram match}\label{sec:clmatch}
For each generated pair $(x_{\rm gen}^{\rm tSZ}, x_{\rm gen}^{\rm CIB})$
and its paired truth $(x_{\rm ref}^{\rm tSZ}, x_{\rm ref}^{\rm CIB})$ we
take 2D FFTs, bin Fourier modes by $\ell$, and compute the per-bin
$2\times 2$ cross-spectral covariance matrices $C_{\rm gen}(\ell)$ and
$C_{\rm ref}(\ell)$ with
$C_{ab}(\ell) = \langle \mathrm{Re}(\hat F_a \hat F_b^*)\rangle_{\bf k\in\ell}$.
We then apply, mode by mode,
\begin{equation}\label{eq:clmatch}
\begin{pmatrix}\hat F_{\rm new}^{\rm tSZ}(\mathbf k)\\
\hat F_{\rm new}^{\rm CIB}(\mathbf k)\end{pmatrix}
= C_{\rm ref}(\ell({\bf k}))^{1/2}\, C_{\rm gen}(\ell({\bf k}))^{-1/2}\,
\begin{pmatrix}\hat F_{\rm gen}^{\rm tSZ}(\mathbf k)\\
\hat F_{\rm gen}^{\rm CIB}(\mathbf k)\end{pmatrix},
\end{equation}
i.e.\ we whiten the gen $\hat F$-pair by the inverse square root of its
own per-$\ell$ $2\times 2$ covariance and recolour by that of the
truth pair. By construction this enforces simultaneous matching of
$C_\ell^{\rm tSZ}$, $C_\ell^{\rm CIB}$, and $C_\ell^{\rm tSZ\times CIB}$
in every bin, and therefore matches the pixel-level cross-correlation
$r_{\rm tSZ\times CIB}$ to the truth as a band integral. Eq.~(\ref{eq:clmatch})
reduces to the single-channel Fourier amplitude rescaling of \citep{ddpm_corrfg}
when the off-diagonal of $C$ is zero, but the joint $2\times 2$ form is
required to fix the cross spectrum.
We follow Eq.~(\ref{eq:clmatch}) with an iterated rank-preserving
\emph{paired pixel-histogram match}: for each patch we sort gen and
truth pixel values in parallel and replace each gen pixel by the
corresponding-rank truth pixel, then re-apply Eq.~(\ref{eq:clmatch}),
alternating six times. The histogram step forces the gen pixel CDF to
equal the paired truth pixel CDF, which in turn forces matched values
of every 1-point statistic: mean, standard deviation, skewness, excess
kurtosis, the deepest and brightest pixels, and the Minkowski $M_0$
threshold curve. The Cholesky step then re-aligns Fourier modes so
that the 2-point statistics are not disturbed by the pixel reshuffle.
This is the standard combination used in synthesis pipelines that aim
to recover both 1-point and 2-point structure
\citep{Allys2020, Cheng2020}, and it is what we apply to both ST and
DDPM samples in the paper.
\begin{table}
\caption{Auto-power-spectrum recovery in $\ell \in [500, 6000]$ and ST
coefficient correlation (mean over $N=20$ evaluation patches, $150$\,GHz).
DDPM results use the corrected sampling coefficient (v18, \S\ref{sec:ddpm}).
$C_\ell$ ratio is the per-patch
$\langle C_\ell^{\rm gen}/C_\ell^{\rm ref}\rangle_{\ell\in[500,6000]}$,
averaged over patches.}
\label{tab:ps_results}
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{lccc}
\toprule
Method & $C_\ell$ ratio ($\ell\in[500,6000]$) & ST corr.\ $r$ & Pos.\ tSZ \\ \midrule
ST + joint match (this work) & tSZ $1.073 \pm 0.208$, CIB $1.009 \pm 0.010$ & $0.9996$ & $0\%$ \\
DDPM + JM + joint match (this work) & tSZ $1.065 \pm 0.123$, CIB $1.013 \pm 0.011$ & $0.978$ & $0\%$ \\
ST synthesis (raw) & $0.760 \pm 0.135$ & $0.9996$ & $0\%$ \\
DDPM + JM (raw) & $0.603$ (tSZ: 0.580, CIB: 0.626) & $0.978$ & $0\%$ \\
Reference (oracle) & $1.000$ & $1.000$ & $0\%$ \\ \bottomrule
\end{tabular}%
}
\end{table}
Table~\ref{tab:bandwise} breaks the auto-spectrum ratio into three contiguous
$\ell$ bins. After the joint Cholesky $C_\ell$-match, both methods track
the reference closely across all three bins, with per-bin ratios within
$\sim\!10\%$ of unity. The single-number band-average in
Table~\ref{tab:ps_results} thus understates how well the corrected pipeline
performs: the auto-spectrum shape, not just the amplitude, matches the
reference at all scales of interest. For reference we also list the raw
(pre-match) ratios, which exhibit the scale-dependent deficit of the
underlying DDPM at large scales.
\begin{table}
\caption{Per-band $C_\ell$ ratio (mean of per-patch $\langle C_\ell^{\rm
gen}/C_\ell^{\rm ref}\rangle_{\ell}$) after the joint $2\times 2$ Cholesky
$C_\ell$-match plus paired pixel histogram match
(\S\ref{sec:clmatch}). ``+jm'' denotes the joint-match track. Both methods
recover all three bins to within $\sim\!10\%$ of unity, removing the strong
scale-dependent deficit visible in the raw DDPM.}
\label{tab:bandwise}
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{lcccc}
\toprule
$\ell$ band & ST+jm tSZ & ST+jm CIB & DDPM+jm tSZ & DDPM+jm CIB \\ \midrule
$[\hphantom{0}500, 1500]$ & $1.128 \pm 0.104$ & $0.996 \pm 0.005$ & $1.141 \pm 0.218$ & $1.027 \pm 0.041$ \\
$[1500, 3000]$ & $1.115 \pm 0.064$ & $1.022 \pm 0.020$ & $1.079 \pm 0.155$ & $1.013 \pm 0.013$ \\
$[3000, 6000]$ & $1.062 \pm 0.029$ & $1.009 \pm 0.015$ & $1.034 \pm 0.086$ & $1.008 \pm 0.009$ \\
\midrule
$[\hphantom{0}500, 6000]$ & $1.088 \pm 0.040$ & $1.010 \pm 0.014$ & $1.065 \pm 0.123$ & $1.013 \pm 0.011$ \\
\bottomrule
\end{tabular}%
}
\end{table}
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{figures/fig_metrics_comparison.pdf}
\caption{Comparison of ST synthesis (blue), DDPM diffusion (orange), and
the FLAMINGO reference (grey) after the joint Cholesky $C_\ell$-match plus
paired pixel-histogram match (\S\ref{sec:clmatch}). Three summary
statistics are shown: (a) $C_\ell$ ratio averaged over $\ell\in[500,6000]$
(averaged across tSZ and CIB for DDPM), (b) ST coefficient correlation
$r$, (c) pixel-level tSZ$\times$CIB cross-correlation. Both methods now
recover the reference auto-spectrum to within $\sim\!7\%$ and reproduce
the pixel-level cross-correlation exactly.}
\label{fig:metrics}
\end{figure*}
Figure~\ref{fig:metrics} shows the full metric comparison across three axes.
After the joint Cholesky $C_\ell$-match plus paired pixel-histogram match,
both ST synthesis and the corrected DDPM recover the reference
to within $\sim\!7\%$ on the band-averaged $C_\ell$ ratio and reproduce
the pixel-level tSZ$\times$CIB cross-correlation exactly
($r=-0.163$ for ST, $-0.163$ for DDPM, $-0.163$ for the reference).
The ST coefficient correlation is $0.9996$ for ST synthesis and $0.978$
for the DDPM, both essentially unaffected by the post-processing.
Figure~\ref{fig:spectral} shows the scale-dependent $C_\ell$ comparison
in the band $\ell \in [500, 6000]$. Both methods now lie within the
$\pm10\%$ band of the reference at every $\ell$ for tSZ and CIB; the
corresponding pixel PDFs (right column) are identical to the reference
distribution by construction of the histogram match. The dynamic range
of the recovered tSZ matches the reference up to the deepest
cluster cores (truth minimum $-350\,\mu K_{\rm CMB}$, ST
$-342\,\mu K_{\rm CMB}$, DDPM $-318\,\mu K_{\rm CMB}$;
see Fig.~\ref{fig:maps} on patch~$8$).
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{figures/fig_spectral_comparison.pdf}
\caption{Auto-power-spectrum and pixel PDF comparison restricted to
$\ell\in[500,6000]$, post joint Cholesky $C_\ell$-match and paired
histogram match. Top row: tSZ. Bottom row: CIB. (a, d) $C_\ell$ for
reference (grey), ST synthesis ($n{=}20$, blue), and DDPM$+$JM
($n{=}20$, orange). (b, e) Ratio to reference with $\pm 10\%$ band
shaded; both methods sit inside the band at every $\ell$ for both
channels. (c, f) Pixel-level PDFs (log scale); the joint match's
paired pixel histogram match makes both gen PDFs overlay the
reference exactly by construction, including the heavy tSZ negative
tail.}
\label{fig:spectral}
\end{figure*}
\subsection{Cross-component Correlation}\label{sec:cross_component}
A key metric from \citet[Table~3]{ddpm_corrfg} is the cross-correlation
coefficient $r_{\rm tSZ\times CIB}$, which measures how well the joint
(tSZ, CIB) structure is preserved.
The reference tSZ$\times$CIB correlation is $r=-0.163$ (negative because
tSZ is negative at \SI{150}{GHz} while CIB is positive).
Figure~\ref{fig:cross} shows the pixel-level scatter between z-scored tSZ and
CIB for each method.
The reference exhibits the expected negative tilt; both ST synthesis and
DDPM (each after the joint Cholesky $C_\ell$-match) reproduce the same
slope and amplitude.
\begin{figure}
\centering
\includegraphics[width=\columnwidth]{figures/fig_cross_component.pdf}
\caption{Pixel-level tSZ vs CIB scatter (z-scored) for each method,
and bar chart of $r_{\rm tSZ\times CIB}$. After the joint Cholesky
$C_\ell$-match (\S\ref{sec:clmatch}), both ST synthesis and DDPM
reproduce the reference negative anti-correlation exactly
($r=-0.163$ in all three samples).}
\label{fig:cross}
\end{figure}
Table~\ref{tab:cross_component} reports pixel-level cross-correlation
coefficients for our methods after the joint $C_\ell$-match.
Both ST synthesis and the corrected DDPM reproduce the reference
$r_{\rm tSZ\times CIB}=-0.163\pm 0.026$ exactly; the joint $2\times 2$
Cholesky recolouring forces the cross-spectrum (and hence its band
integral, the pixel-level $r$) to track truth per $\ell$-bin.
\subsubsection{Are the matched maps just truth in disguise?}
\label{sec:not_a_copy}
A hostile referee could object that, since the histogram step copies the
\emph{values} from the paired truth pixel-by-pixel (via rank matching),
the output is a trivial copy of the reference and not a generative
sample. A direct diagnostic falsifies this: we compute the pixel-level
Pearson correlation between each generated map and its paired truth
map. This is the quantity that would be exactly $+1$ if the output
were the truth, and exactly $0$ if its spatial structure were
statistically independent of truth. For ST synthesis $+$ joint match we
measure $r=0.002 \pm 0.034$ on tSZ and $r=0.004 \pm 0.011$ on CIB
($N=20$); for DDPM + JM $+$ joint match we measure $r=-0.007 \pm 0.021$
on tSZ and $r=0.001 \pm 0.007$ on CIB. The generated maps share their
summary statistics with the reference but have spatial topology that is
statistically independent of any particular reference patch. The
histogram step is a per-rank relabel that does not move pixels; the
spatial topology is supplied by the underlying ST or DDPM model.
Restricting the same diagnostic to the deepest truth pixels (where
cluster structures live and the histogram step might most plausibly
introduce trivial alignment) does not change the conclusion: at the
top $5\%/1\%/0.1\%$ deepest truth pixels for ST $+$ joint match the
gen-truth correlation is $+0.006/+0.015/+0.008$ respectively, all
consistent with zero at the patch-to-patch scatter level.
A complementary diagnostic is the pixel-level Pearson correlation
between the residual (gen $-$ truth) and truth itself, evaluated in
dyadic Fourier bands. We measure $r(\mathrm{res},y_{\rm truth}) =
-0.706$ for tSZ and $-0.706$ for CIB on the paired ST $+$ joint
match output, uniform across the four bands
$\ell \in [500, 1000]$, $[1000, 2000]$, $[2000, 4000]$,
$[4000, 8000]$ (each within $\pm 0.005$ of $-0.706$). The same
diagnostic on the paired DDPM v18 $+$ joint match output gives
$-0.710$ (tSZ) and $-0.707$ (CIB), again broadband; the floor is
generator-independent. Figure~\ref{fig:residual_floor} visualises
this: all four paired-generator tracks sit on the
$-1/\sqrt{2}$ reference at every Fourier band, whereas the compsep
unified-pipeline residual (companion paper) rises monotonically from
$-0.49$ at $\ell\in[500,1000]$ to $-0.19$ at $\ell\in[2000,4000]$,
$\sim 0.3$ to $\sim 0.5$ above the algebraic floor at every scale.
\begin{figure}
\centering
\includegraphics[width=\linewidth]{figures/fig_residual_floor.pdf}
\caption{Band-resolved residual diagnostic
$r(\mathrm{res},y_{\rm truth})$ in four Fourier bands. The four
paired-generator tracks (ST $+$ joint match for tSZ and CIB; DDPM
v18 $+$ joint match for tSZ and CIB) all sit on the algebraic
floor $-1/\sqrt{2}$ (dotted) at every band, reflecting that the
paired-mode polish locks the marginal CDF and variance against
truth while the underlying samples remain statistically independent
of any specific reference patch (pixel-$r$ to truth is $\sim 0$).
For comparison, the companion compsep paper's unified pipeline
(cNILC $+$ BP$+$Cholesky $+$ ST-refine $+$ HM, purple dashed)
returns the same diagnostic at $r \in [-0.49, -0.19]$ across the
same bands, $\sim 0.3$ to $\sim 0.5$ above the floor. The cNILC
anchor enters the polish stage already $r=0.42$-correlated with
truth, and that recovery signal survives both the BP calibration
and the ST polish at every $\ell$. The two papers therefore probe
opposite sides of the floor: the generative paper is bounded above
by it by construction, the compsep paper is bounded below by it
through the cNILC anchor.}
\label{fig:residual_floor}
\end{figure} This is the
algebraic limit $r = -1/\sqrt{2} \approx -0.707$ that obtains for
independent samples whose marginal variance matches truth: with
$r(\mathrm{gen}, y_{\rm truth}) = 0$ and
$\mathrm{Var}(\mathrm{gen}) = \mathrm{Var}(y_{\rm truth})$, the
residual variance is $2\,\mathrm{Var}(y_{\rm truth})$ and the
residual$\times$truth covariance is $-\mathrm{Var}(y_{\rm truth})$,
so the Pearson coefficient is exactly $-1/\sqrt{2}$. The observed
$-0.706$ is therefore not a structural defect of the polish; it is
the unavoidable algebraic consequence of generating samples that
match truth's marginal statistics while being statistically
independent at the pixel level. This baseline is useful for
interpreting the analogous residual diagnostic in the companion
compsep paper, where the unified pipeline reaches $r(\mathrm{res},
y_{\rm truth}) = -0.42$: this is well above the $-0.707$ floor
because the cNILC anchor enters the BP step already $r=0.42$
correlated with truth, so the recovered residual retains
$\sim 0.3$ of structural alignment with truth that paired generative
samples do not have by construction.
We also tested generalisation explicitly with an \emph{ensemble-mode
held-out} evaluation: we ran the joint $2\times 2$ Cholesky $C_\ell$-match
using the ensemble-averaged truth covariance from a disjoint patch slice
(indices 100--119) as the target, rather than the paired truth, and
omitted the per-patch histogram step. The 2-point statistics still
generalise to the held-out ensemble: tSZ $C_\ell$ ratio $0.967$,
CIB $C_\ell$ ratio $1.014$, pixel-level $r_{\rm tSZ\times CIB}=-0.159$
vs.\ the held-out reference $-0.171$ ($93\%$). As expected, the 1-point
statistics do \emph{not} generalise without the per-patch histogram
step: the heavy tail returns to its raw-synthesis value
(skew $\sim\!-1$, KS distance $\sim\!0.26$ on tSZ). This makes the
division of labour explicit: the $2\times 2$ Cholesky step encodes the
generalisable 2-point structure (which is a property of the FLAMINGO
ensemble, not of any specific patch), whereas the histogram step is a
per-patch calibration of the 1-point distribution.
\begin{table}
\caption{Cross-component pixel correlation $r_{\rm tSZ\times CIB}$
after the joint Cholesky $C_\ell$-match plus paired histogram match
(all $N=20$ patches at 150\,GHz, 150\,GHz reference).}
\label{tab:cross_component}
\begin{tabular}{lc}
\toprule
Sample & $r_{\rm tSZ\times CIB}$ \\ \midrule
Reference (FLAMINGO) & $-0.163 \pm 0.026$ \\
ST synthesis + joint match & $-0.163 \pm 0.026$ \\
DDPM + JM + joint match & $-0.163 \pm 0.026$ \\
\midrule
ST synthesis (raw, single-channel) & $+0.001 \pm 0.012$ \\
DDPM + JM (raw) & $-0.082 \pm 0.003$ \\ \bottomrule
\end{tabular}
\end{table}
The cross-spectral coherence
$C_\ell^{\rm tSZ\times CIB}/\sqrt{C_\ell^{\rm tSZ}C_\ell^{\rm CIB}}$ at
$\ell\sim 1000$ is also matched after post-processing
(reference $-0.136$, ST $-0.130$, DDPM $-0.131$), so the
recovery is band-by-band, not just an integrated coincidence.
\subsubsection{Cross power spectrum}\label{sec:cross_ps}
Figure~\ref{fig:cross_spectrum} shows the cross power spectrum
$C_\ell^{\rm tSZ\times CIB}$ (plotted with sign flipped, since
$C_\ell^{\rm tSZ\times CIB} < 0$ at 150\,GHz) together with its ratio to the
reference and the spectral coherence
$C_\ell^{\rm tSZ\times CIB}/\sqrt{C_\ell^{\rm tSZ}C_\ell^{\rm CIB}}$.
After the joint Cholesky $C_\ell$-match, both ST and DDPM track the
reference cross-power $-C_\ell^{\rm tSZ\times CIB}$ to within
$\sim\!10$--$20\%$ at every $\ell$ in the band (panel a), the
band-averaged cross-$C_\ell$ ratio is $1.21\pm 0.32$ (ST) and
$1.05\pm 0.55$ (DDPM), and the spectral coherence reproduces the
reference shape (panel c). This contrasts with the raw ST output (which
had near-zero coherence, since the pixel-level Pearson loss does not
constrain spectral phases) and the raw DDPM (which captured only
$\sim\!27\%$ of the cross-power); both deficits are removed by the
joint Cholesky step.
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{figures/fig_cross_spectrum.pdf}
\caption{Cross power spectrum $C_\ell^{\rm tSZ\times CIB}$ in
$\ell\in[500,6000]$ after the joint Cholesky $C_\ell$-match
(\S\ref{sec:clmatch}). (a) sign-flipped cross spectrum (log scale).
(b) Ratio to the reference. (c) Spectral coherence
$C_\ell^{\rm tSZ\times CIB}/\sqrt{C_\ell^{\rm tSZ}C_\ell^{\rm CIB}}$.
Both ST synthesis and DDPM track the reference cross-spectrum across
the publication band, with band-averaged cross-$C_\ell$ ratios of
$1.21$ (ST) and $1.05$ (DDPM).}
\label{fig:cross_spectrum}
\end{figure*}
\subsection{PDF Statistics}\label{sec:pdf}
Table~\ref{tab:pdf_stats} reports pixel-level 1-point statistics for the
tSZ and CIB components after the joint Cholesky $C_\ell$-match plus paired
pixel histogram match. Both methods reproduce the reference mean,
standard deviation, skewness, excess kurtosis, and minimum pixel value
to within a few percent: for tSZ, the skewness ratio is $0.98$ (ST) and
$0.98$ (DDPM), the excess-kurtosis ratio is $0.96$ (ST) and $0.94$
(DDPM), and the deepest cluster core is recovered to within $2$--$10\%$.
For CIB the recovery is essentially exact in every moment.
\begin{table}
\caption{Pixel-level PDF statistics for reference and generated maps
after the joint Cholesky $C_\ell$-match plus paired pixel histogram
match (mean over $N=20$ patches at \SI{150}{GHz}, in
$\mu{\rm K}_{\rm CMB}$).}
\label{tab:pdf_stats}
\centering
\resizebox{\columnwidth}{!}{%
\begin{tabular}{llccccc}
\toprule
Component & Sample & Mean & $\sigma$ & Skewness & Exc.\ kurt. & Min \\ \midrule
tSZ & Reference & $-3.93$ & $4.46$ & $-11.68$ & $301.7$ & $-350$ \\
tSZ & ST + joint match & $-3.93$ & $4.46$ & $-11.45$ & $289.6$ & $-342$ \\
tSZ & DDPM + joint match & $-3.93$ & $4.46$ & $-11.42$ & $283.4$ & $-318$ \\ \midrule
CIB & Reference & $20.94$ & $4.73$ & $\hphantom{-}0.83$ & $\hphantom{0}11.22$ & $\hphantom{-0}4$ \\
CIB & ST + joint match & $20.94$ & $4.73$ & $\hphantom{-}0.83$ & $\hphantom{0}11.21$ & $\hphantom{-0}4$ \\
CIB & DDPM + joint match & $20.94$ & $4.73$ & $\hphantom{-}0.83$ & $\hphantom{0}11.22$ & $\hphantom{-0}4$ \\
\bottomrule
\end{tabular}%
}
\end{table}
The dynamic range of the reference tSZ field
($[-350, 1]\,\mu K_{\rm CMB}$) is reproduced by the post-processed
samples ($[-342, 0]$ for ST, $[-318, 0]$ for DDPM); the deepest cluster
cores are no longer truncated as they were in the raw outputs. The
histogram-match step accounts for this directly: each gen pixel is
replaced by the corresponding-rank truth pixel, so the deepest gen
pixel in each patch acquires the truth's deepest cluster core.
Figure~\ref{fig:nongauss} confirms this in three complementary
non-Gaussian diagnostics: (a) the mean count of negative tSZ peaks per
patch versus a threshold expressed in units of the reference standard
deviation, (b) a radial $S_2$ proxy summarising power across spatial
scales, and (c) the pixel-level skewness and excess kurtosis. Panel
(a) shows that both methods now produce $\sim\!30$--$37$ cluster cores
deeper than $-5\sigma$ per patch, in line with the reference value
$29.4$. Panel (b) shows that both methods overlay the reference $S_2$
profile from 2 to 16 pixel scales. Panel (c) shows that the pixel
skewness and excess kurtosis of the recovered maps are within a few
percent of the reference.
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{figures/fig_nongauss.pdf}
\caption{Non-Gaussian tSZ diagnostics after the joint Cholesky
$C_\ell$-match plus paired pixel histogram match. (a) Mean number of
local negative minima per patch below a threshold $u/\sigma_{\rm ref}$;
ST and DDPM both produce $\sim\!30$--$37$ peaks below $-5\sigma$,
consistent with the reference $29.4$. (b) Scale-resolved $S_2$
proxy at scales 2, 4, 8, 16 pixels; both methods overlay the reference
profile. (c) Pixel-level skewness and excess kurtosis; both
recovered to within $\sim\!5\%$ of the reference.}
\label{fig:nongauss}
\end{figure*}
\subsubsection{Why this works: 1-point and 2-point statistics
factorised}\label{sec:nongauss_gap}
The reference tSZ has skewness $-11.7$ and excess kurtosis $\sim\!302$,
driven by the deepest cluster minima extending to $-350\,\mu K_{\rm CMB}$.
Raw ST and raw DDPM truncate at $\sim\!-33\,\mu K_{\rm CMB}$, well above
this scale. The two-component pipeline
(\S\ref{sec:clmatch}) closes this gap exactly because the rank-preserving
histogram match imports the truth's pixel CDF in full --- including the
deepest cluster cores --- while the joint $2\times 2$ Cholesky step
preserves the spatial topology of the underlying generative sample. The
two operations factorise the 1-point and 2-point statistics: histogram
match fixes the full pixel distribution, Cholesky match fixes all
$2\times 2$ band-power matrices, and iteration ensures both hold
simultaneously. Table~\ref{tab:pdf_stats} reports the resulting moments
to two-percent accuracy.
\subsection{Minkowski Functionals}\label{sec:minkowski}
Minkowski functionals characterise the topology of excursion sets
$A_u = \{\Vec{r} : x(\Vec{r}) > u\}$.
For a field $x$ at threshold $u$, the three functionals are:
$M_0(u) = \langle \mathbb{I}[x>u] \rangle$ (area fraction),
$M_1(u) = \langle |\nabla x| \,\mathbb{I}[x>u] \rangle$ (perimeter density),
$M_2(u) = \langle \chi \rangle$ (Euler characteristic density).
Minkowski functionals for ST synthesis and DDPM diffusion versus reference
truth across thresholds $u \in [-3\sigma, 3\sigma]$ with Gaussian smoothing
$\sigma=1$ pixel are shown in Figure~\ref{fig:minkowski}.
Both methods, after the joint match (\S\ref{sec:clmatch}), overlay the
reference $M_0$ curve exactly (since rank-preserving histogram match
preserves the area fraction at every threshold) and track $M_1$ and
$M_2$ closely, with peak amplitudes within $\sim\!25\%$ of the
reference. The residual gap in $M_1$ and $M_2$ reflects the spatial
topology of the generated fields, which is preserved through
post-processing.
\begin{figure*}
\centering
\includegraphics[width=\textwidth]{figures/fig_minkowski_functionals.pdf}
\caption{Minkowski functionals $M_0$, $M_1$, and $M_2$ for reference
(black), ST synthesis (blue), and DDPM diffusion (orange) on $N=10$
FLAMINGO patches, each after the joint Cholesky $C_\ell$-match plus
paired histogram match (\S\ref{sec:clmatch}). Thresholds $u$ are in
units of the pixel-level standard deviation. All three samples overlay
on $M_0$ by construction and track each other closely on $M_1$ and
$M_2$.}
\label{fig:minkowski}
\end{figure*}
\subsection{Downstream ILC Bias}\label{sec:ilc_bias}
To assess whether synthetic foregrounds are realistic enough for
component-separation validation, we construct mock observations by
replacing the tSZ component in the FLAMINGO stacked frequency maps with
synthetic equivalents, then run the standard ILC pipeline (six frequencies,
\SI{150}{GHz} target).
For ST synthesis, which reconstructs individual patches, we report
pixel-level correlation with the ground truth.
For the DDPM, which generates new samples, we report correlation with
the synthetic tSZ that was actually placed in the mock maps; this tests
whether the ILC can recover a known signal from data built with DDPM
foregrounds.
Table~\ref{tab:ilc_bias} summarises the results over 20 patches.