<figure><img src="image_15.png" /><figcaption>**Fig. 16.** Derivative of the logarithm of the linear (left) and nonlinear (right) matter power spectrum with respect to each cosmological parameter in our basis, computed with CLASS (with either DP or HP) and CAMB (with either P1, P2, or P3 precision). The derivatives are computed at $z = 0$. In the linear case (left), the CAMB P1 curve is always overdrawn by the P2 one, since the difference between P1 and P2 is only relevant at the level of the nonlinear spectrum. Moreover, P2 is always nearly overdrawn by P3.</figcaption></figure>

### 6.3. Accuracy settings and second derivatives of the likelihood

The MP/Fisher pipeline relies on the calculation of second derivatives of the likelihood, which potentially require even more precision than the evaluation of first derivatives. We can do various tests of the impact of accuracy settings on such second derivatives, that is, on the direct calculation of the Fisher matrix coefficient.

In Appendix B.3 we show how the prediction of a given Fisher matrix coefficient varies with the CLASS precision setting (DP versus HP) and the step size. We find that with small step sizes the results can be affected by random numerical noise, while with large step sizes they pick up higher-order contributions related to the non-Gaussianity of the likelihood. Adopting HP settings offers an opportunity to decrease the step sizes without being dominated by numerical noise, and thus, to have a safe and robust calculation of Fisher matrix coefficients, closer to the Gaussian approximation. This supports our

decision to stick to HP settings throughout this work – while in the CosmicFish pipeline, based on the calculation of first derivatives, CLASS DP settings would suffice, as shown in the last subsection.

We can also compare the marginalised and un marginalised errors on all parameters obtained with the MP/Fisher pipeline, using either CLASS DP or HP. For this test, we stick to the same small step sizes as in the rest of this work, that is, for the photometric probe, 10% of the marginalised error on each parameter, and for the spectroscopic probe, 5% of them (as explained in Appendix B.3). This test leads to tiny differences (1%) on un marginalised errors, but large errors on the marginalised one, reaching 11% for the spectroscopic/optimistic probe and even much more for the photometric/optimistic probe. Thus we conclude that the use of HP is optional for the CosmicFish pipeline and absolutely required for the MP/Fisher pipeline. We reiterate that the MP/MCMC pipeline is the least sensitive to numerical errors and can be safely run in DP.
<figure><img src="image_16.png" /><figcaption>**Fig. 16.** Derivative of the logarithm of the linear (left) and nonlinear (right) matter power spectrum with respect to each cosmological parameter in our basis, computed with CLASS (with either DP or HP) and CAMB (with either P1, P2, or P3 precision). The derivatives are computed at $z = 0$. In the linear case (left), the CAMB P1 curve is always overdrawn by the P2 one, since the difference between P1 and P2 is only relevant at the level of the nonlinear spectrum. Moreover, P2 is always nearly overdrawn by P3.</figcaption></figure>

### 6.3. Accuracy settings and second derivatives of the likelihood

The MP/Fisher pipeline relies on the calculation of second derivatives of the likelihood, which potentially require even more precision than the evaluation of first derivatives. We can do various tests of the impact of accuracy settings on such second derivatives, that is, on the direct calculation of the Fisher matrix coefficient.

In Appendix B.3 we show how the prediction of a given Fisher matrix coefficient varies with the CLASS precision setting (DP versus HP) and the step size. We find that with small step sizes the results can be affected by random numerical noise, while with large step sizes they pick up higher-order contributions related to the non-Gaussianity of the likelihood. Adopting HP settings offers an opportunity to decrease the step sizes without being dominated by numerical noise, and thus, to have a safe and robust calculation of Fisher matrix coefficients, closer to the Gaussian approximation. This supports our

decision to stick to HP settings throughout this work – while in the CosmicFish pipeline, based on the calculation of first derivatives, CLASS DP settings would suffice, as shown in the last subsection.

We can also compare the marginalised and un marginalised errors on all parameters obtained with the MP/Fisher pipeline, using either CLASS DP or HP. For this test, we stick to the same small step sizes as in the rest of this work, that is, for the photometric probe, 10% of the marginalised error on each parameter, and for the spectroscopic probe, 5% of them (as explained in Appendix B.3). This test leads to tiny differences (1%) on un marginalised errors, but large errors on the marginalised one, reaching 11% for the spectroscopic/optimistic probe and even much more for the photometric/optimistic probe. Thus we conclude that the use of HP is optional for the CosmicFish pipeline and absolutely required for the MP/Fisher pipeline. We reiterate that the MP/MCMC pipeline is the least sensitive to numerical errors and can be safely run in DP.
<figure><img src="image_16.png" /><figcaption>**Fig. 17.** Same Fig. 16 but now for the *difference* between the derivative of the logarithm of the linear (left) and nonlinear (right) matter power spectrum computed with one of CLASS DP or CAMB (with either P1, P2, or P3 precision) with the same derivative computed with CLASS HP.</figcaption></figure>

## 7. Conclusions

For the purpose of *Euclid* forecasts we have thoroughly validated the MP/Fisher pipeline against a bunch of CosmicFish Fisher forecast pipelines and a few other previous results from EP:VII. Despite of the very different method through which MontePython and CosmicFish compute Fisher matrices, we found a spectacular level of agreement between them. Typically, with pessimistic *Euclid* settings, all errors agree at least at the 2% level between the MP/Fisher and CosmicFish pipelines for both the photometric and spectroscopic cases. Even when involving additional forecast pipelines from EP:VII, all error bars agree much better than the “10% with respect to the median” threshold fixed by the latter group. We also showed that forecasts performed with CLASS or CAMB agree very well with each other, especially when both codes are called through their Python wrappers (leading to sub-0.5% differences between all errors computed with CF/int/CAMB versus CF/int/CLASS). Additionally, we proved that the Gaussian approximation on which all Fisher forecasts are relying is valid in the context of *Euclid* and of the $\Lambda$CDM+$\{w_0, w_a\}$ model, since the Fisher ellipses overlap with the contours derived from an MCMC run using the same MontePython mock *Euclid* likelihoods.

This validation step is interesting by itself, because it allows us to cross-check the impact and the self-consistency of several details in the recipes used for modelling the *Euclid* photometric and spectroscopic probes and by the same occasion to validate some new ways of using the *CosmicFish* code with four different interfaces with the CAMB and CLASS Einstein-Boltzmann solvers. In the present paper we tried to document thoroughly all the physical assumptions and numerical methods used by these pipelines, reporting things exactly as they are implemented in the codes. We also reported our predictions for the sensitivity of *Euclid* to the parameters of the $\Lambda$CDM+$\{w_0, w_a\}$ model when the photometric and spectroscopic probes are used either independently or in combination with each other.

However, in the context of preliminary work for *Euclid* the most important consequence of this work of validation is to pave the way to further robust forecasts. As a matter of fact any cosmological model implemented in the CLASS code can now be immediately used in a forecast: for this, one just needs to add to the input file of MontePython one line per free parameter. If this parameter is known by CLASS, there is nothing else to be done. Thanks to the new CF/int/CAMB pipeline presented here, this is actually also true for any parameter or model implemented in CAMB. However, the version of the mock likelihoods used in
<figure><img src="image_17.png" /><figcaption>**Fig. 17.** Same Fig. 16 but now for the *difference* between the derivative of the logarithm of the linear (left) and nonlinear (right) matter power spectrum computed with one of CLASS DP or CAMB (with either P1, P2, or P3 precision) with the same derivative computed with CLASS HP.</figcaption></figure>

## 7. Conclusions

For the purpose of *Euclid* forecasts we have thoroughly validated the MP/Fisher pipeline against a bunch of CosmicFish Fisher forecast pipelines and a few other previous results from EP:VII. Despite of the very different method through which MontePython and CosmicFish compute Fisher matrices, we found a spectacular level of agreement between them. Typically, with pessimistic *Euclid* settings, all errors agree at least at the 2% level between the MP/Fisher and CosmicFish pipelines for both the photometric and spectroscopic cases. Even when involving additional forecast pipelines from EP:VII, all error bars agree much better than the “10% with respect to the median” threshold fixed by the latter group. We also showed that forecasts performed with CLASS or CAMB agree very well with each other, especially when both codes are called through their Python wrappers (leading to sub-0.5% differences between all errors computed with CF/int/CAMB versus CF/int/CLASS). Additionally, we proved that the Gaussian approximation on which all Fisher forecasts are relying is valid in the context of *Euclid* and of the $\Lambda$CDM+$\{w_0, w_a\}$ model, since the Fisher ellipses overlap with the contours derived from an MCMC run using the same MontePython mock *Euclid* likelihoods.

This validation step is interesting by itself, because it allows us to cross-check the impact and the self-consistency of several details in the recipes used for modelling the *Euclid* photometric and spectroscopic probes and by the same occasion to validate some new ways of using the *CosmicFish* code with four different interfaces with the CAMB and CLASS Einstein-Boltzmann solvers. In the present paper we tried to document thoroughly all the physical assumptions and numerical methods used by these pipelines, reporting things exactly as they are implemented in the codes. We also reported our predictions for the sensitivity of *Euclid* to the parameters of the $\Lambda$CDM+$\{w_0, w_a\}$ model when the photometric and spectroscopic probes are used either independently or in combination with each other.

However, in the context of preliminary work for *Euclid* the most important consequence of this work of validation is to pave the way to further robust forecasts. As a matter of fact any cosmological model implemented in the CLASS code can now be immediately used in a forecast: for this, one just needs to add to the input file of MontePython one line per free parameter. If this parameter is known by CLASS, there is nothing else to be done. Thanks to the new CF/int/CAMB pipeline presented here, this is actually also true for any parameter or model implemented in CAMB. However, the version of the mock likelihoods used in
<figure><img src="image_17.png" /><figcaption>**Fig. 18.** For the photometric survey (top panels) and spectroscopic survey (bottom panels) both with optimistic settings, comparison of the Fisher marginalised and un marginalised errors on each cosmological and nuisance parameters for CAMB P2 versus CAMB P3 precision (first and third panels), or CLASS DP versus HP precision (second and fourth panels). Plotting conventions are the same as in Fig. 2.</figcaption></figure>

this paper relies on a few model-dependent assumptions (such as
the standard Poisson equation or the fact that galaxies trace the
total matter power spectrum). These assumptions require some
generalisation in the case of massive neutrinos or modified grav-
ity models. A generalisation of the MontePython Euclid mock
likelihoods to the case of massive neutrinos will be released soon
(together with a forthcoming publication). Since MontePython
calls the very same functions (describing the two Euclid mock
likelihoods) when computing the Fisher matrix or when running
an MCMC forecast, and since MP/Fisher forecasts have been
validated against EP:VII forecasts, we automatically know that
MP/MCMC forecasts can be trusted on equal footing with EP:VII
forecasts, with the additional advantage of taking consistently
into account a possible non-Gaussianity of the posteriors.

The MontePython *Euclid* mock likelihoods should not be confused with the official *Euclid* likelihood that is currently being developed within the collaboration. The latter is more ambitious and includes effects that are neglected here (such as super-sample covariance, different intrinsic alignment models, redshift-space distortions and magnification in the photometric galaxy clustering, or nonlinear galaxy biasing, just to name a few). Nonetheless, the *MontePython Euclid* likelihoods provide a robust tool against which the official likelihood can be compared and tested.

Another more general benefit from our analysis is that we
have established and documented a list of accuracy settings for
the EBSs CAMB and CLASS that prove to be sufficient for the pur-
pose of Euclid forecasts, and thus, in principle, for the analysis
of real Euclid data.

Acknowledgements. N.S. acknowledges support from the Maria de Maetzu fellowship grant: CEX2019-000918-M, financiado por MCIN/AEI/10.13039/ 501100011033. N.F. is supported by the Italian Ministry of University and Research (MUR) through the Rita Levi Montalcini project “Tests of gravity on cosmic scales” with reference PGR19ILFGP. N.F. and F.P. also acknowledge the FCT project with ref. number PTDC/FIS-AST/0054/2021. S.V. acknowledges support funded by the Deutsche Forschungsgemeinschaft (DFG,

German Research Foundation) under Germany’s Excellence Strategy – EXC-2121 “Quantum Universe” – 390833306. E.B. has received funding from the European Union’s Horizon 2020 research and innovation program under the Marie Skłodowska-Curie grant agreement No 754496. F.P. acknowledges partial support from the INFN grant InDark and the Departments of Excellence grant L.232/2016 of the Italian Ministry of University and Research (MUR). St.C. acknowledges support from the ‘Departments of Excellence 2018-2022’ Grant (L. 232/2016) awarded by the Italian Ministry of University and Research (MUR). Z.S. acknowledges funding from DFG project 456622116. The Euclid Consortium acknowledges the European Space Agency and a number of agencies and institutes that have supported the development of *Euclid*, in particular the Academy of Finland, the Agenzia Spaziale Italiana, the Belgian Science Policy, the Canadian Euclid Consortium, the French Centre National d’Études Spatiales, the Deutsches Zentrum für Luft- und Raumfahrt, the Danish Space Research Institute, the Fundação para a Ciência e a Tecnologia, the Ministerio de Ciencia e Innovación, the National Aeronautics and Space Administration, the National Astronomical Observatory of Japan, the Netherlandse Onderzoekschool Voor Astronomie, the Norwegian Space Agency, the Romanian Space Agency, the State Secretariat for Education, Research and Innovation (SERI) at the Swiss Space Office (SSO), and the United Kingdom Space Agency. A complete and detailed list is available on the *Euclid* web site (http://www.euclid-ec.org).

References

Audren, B., Lesgourgues, J., Benabed, K., & Prunet, S. 2013a, J. Cosmol. Astropart. Phys., 02, 001

Audren, B., Lesgourgues, J., Bird, S., Haehnelt, M. G., & Viel, M. 2013b, J. Cosmol. Astropart. Phys., 01, 026

Bennett, J. J., Buldgen, G., De Salas, P. F., et al. 2021, J. Cosmol. Astropart. Phys., 04, 073

Bird, S., Viel, M., & Haehnelt, M. G. 2012, MNRAS, 420, 2551

Blas, D., Lesgourgues, J., & Tram, T. 2011, J. Cosmol. Astropart. Phys., 07, 034

Boyle, A., & Komatsu, E. 2018, J. Cosmol. Astropart. Phys., 03, 035

Brinckmann, T., & Lesgourgues, J. 2019, Phys. Dark Univ., 24, 100260

Brinckmann, T., Hooper, D. C., Archidiacono, M., Lesgourgues, J., & Sprenger, T. 2019, J. Cosmol. Astropart. Phys., 01, 059

Camera, S., Harrison, I., Bonaldi, A., & Brown, M. L. 2017, MNRAS, 464, 4747

Carron, J. 2013, A&A, 551, A88

Chevallier, M., & Polarski, D. 2001, Int. J. Mod. Phys. D, 10, 213

Euclid Collaboration (Blanchard, A. et al.) 2020, A&A, 642, A191

Euclid Collaboration (Pocino, A., et al.) 2021, A&A, 655, A44

Froustey, J., Pitrou, C., & Volpe, M. C. 2020, J. Cosmol. Astropart. Phys., 12, 015

Hamann, J., Balbi, A., Lesgourgues, J., & Quercellini, C. 2009, J. Cosmol. Astropart. Phys., 04, 011

Kaiser, N. 1987, MNRAS, 227, 1

Lesgourgues, J. 2011a, arXiv e-prints [arXiv:1104.2932]

Lesgourgues, J. 2011b, arXiv e-prints [arXiv:1104.2934]

Lesgourgues, J., & Tram, T. 2014, J. Cosmol. Astropart. Phys., 09, 032

Lewis, A. 2019, arXiv e-prints [arXiv:1910.13970]

Lewis, A., Challinor, A., & Lasenby, A. 2000, ApJ, 538, 473

Linder, E. V. 2003, Phys. Rev. Lett., 90, 091301

Naidoo, K., Johnston, H., Joachimi, B., et al. 2023, A&A, 670, A149

Percival, W. J., Burkey, D., Heavens, A. et al. 2004, MNRAS, 353, 1201

Raveri, M., Martinelli, M., Zhao, G., & Wang, Y. 2016, arXiv e-prints
[arXiv:1606.06268]

Sprenger, T., Archidiacono, M., Brinckmann, T., Clesse, S., & Lesgourgues, J. 2019, J. Cosmol. Astropart. Phys., 02, 047

Takahashi, R., Nishimichi, T., Namikawa, T., et al. 2020, ApJ, 895, 113

van den Busch, J. L., Hildebrandt, H., Wright, A. H., et al. 2020, A&A, 642, A200

Virtanen, P., Gommers, R., Oliphant, T. E., et al. 2020, Nat. Methods, 17, 261

Yahia-Cherif, S., Blanchard, A., Camera, S., et al. 2021, A&A, 649, A52

<footnote n="1">¹ Institute for Theoretical Particle Physics and Cosmology (TTK), RWTH Aachen University, 52056 Aachen, Germany
e-mail: s.casas@protonmail.com</footnote>

<footnote n="2">² Institut de Ciències del Cosmos (ICCUB), Universitat de Barcelona (IEEC-UB), Martí i Franquès 1, 08028 Barcelona, Spain</footnote>

<footnote n="3">³ Hamburger Sternwarte, University of Hamburg, Gojenbergsweg 112, 21029 Hamburg, Germany</footnote>
<figure><img src="image_18.png" /><figcaption>**Fig. 18.** For the photometric survey (top panels) and spectroscopic survey (bottom panels) both with optimistic settings, comparison of the Fisher marginalised and un marginalised errors on each cosmological and nuisance parameters for CAMB P2 versus CAMB P3 precision (first and third panels), or CLASS DP versus HP precision (second and fourth panels). Plotting conventions are the same as in Fig. 2.</figcaption></figure>

this paper relies on a few model-dependent assumptions (such as
the standard Poisson equation or the fact that galaxies trace the
total matter power spectrum). These assumptions require some
generalisation in the case of massive neutrinos or modified grav-
ity models. A generalisation of the MontePython Euclid mock
likelihoods to the case of massive neutrinos will be released soon
(together with a forthcoming publication). Since MontePython
calls the very same functions (describing the two Euclid mock
likelihoods) when computing the Fisher matrix or when running
an MCMC forecast, and since MP/Fisher forecasts have been
validated against EP:VII forecasts, we automatically know that
MP/MCMC forecasts can be trusted on equal footing with EP:VII
forecasts, with the additional advantage of taking consistently
into account a possible non-Gaussianity of the posteriors.

The MontePython *Euclid* mock likelihoods should not be confused with the official *Euclid* likelihood that is currently being developed within the collaboration. The latter is more ambitious and includes effects that are neglected here (such as super-sample covariance, different intrinsic alignment models, redshift-space distortions and magnification in the photometric galaxy clustering, or nonlinear galaxy biasing, just to name a few). Nonetheless, the *MontePython Euclid* likelihoods provide a robust tool against which the official likelihood can be compared and tested.

Another more general benefit from our analysis is that we
have established and documented a list of accuracy settings for
the EBSs CAMB and CLASS that prove to be sufficient for the pur-
pose of Euclid forecasts, and thus, in principle, for the analysis
of real Euclid data.

Acknowledgements. N.S. acknowledges support from the Maria de Maetzu fellowship grant: CEX2019-000918-M, financiado por MCIN/AEI/10.13039/ 501100011033. N.F. is supported by the Italian Ministry of University and Research (MUR) through the Rita Levi Montalcini project “Tests of gravity on cosmic scales” with reference PGR19ILFGP. N.F. and F.P. also acknowledge the FCT project with ref. number PTDC/FIS-AST/0054/2021. S.V. acknowledges support funded by the Deutsche Forschungsgemeinschaft (DFG,

German Research Foundation) under Germany’s Excellence Strategy – EXC-2121 “Quantum Universe” – 390833306. E.B. has received funding from the European Union’s Horizon 2020 research and innovation program under the Marie Skłodowska-Curie grant agreement No 754496. F.P. acknowledges partial support from the INFN grant InDark and the Departments of Excellence grant L.232/2016 of the Italian Ministry of University and Research (MUR). St.C. acknowledges support from the ‘Departments of Excellence 2018-2022’ Grant (L. 232/2016) awarded by the Italian Ministry of University and Research (MUR). Z.S. acknowledges funding from DFG project 456622116. The Euclid Consortium acknowledges the European Space Agency and a number of agencies and institutes that have supported the development of Euclid, in particular the Academy of Finland, the Agenzia Spaziale Italiana, the Belgian Science Policy, the Canadian Euclid Consortium, the French Centre National d’Études Spatiales, the Deutsches Zentrum für Luft- und Raumfahrt, the Danish Space Research Institute, the Fundação para a Ciência e a Tecnologia, the Ministerio de Ciencia e Innovación, the National Aeronautics and Space Administration, the National Astronomical Observatory of Japan, the Netherlandse Onderzoekschool Voor Astronomie, the Norwegian Space Agency, the Romanian Space Agency, the State Secretariat for Education, Research and Innovation (SERI) at the Swiss Space Office (SSO), and the United Kingdom Space Agency. A complete and detailed list is available on the Euclid web site (http://www.euclid-ec.org).

References

Audren, B., Lesgourgues, J., Benabed, K., & Prunet, S. 2013a, J. Cosmol. Astropart. Phys., 02, 001

Audren, B., Lesgourgues, J., Bird, S., Haehnelt, M. G., & Viel, M. 2013b, J. Cosmol. Astropart. Phys., 01, 026

Bennett, J. J., Buldgen, G., De Salas, P. F., et al. 2021, J. Cosmol. Astropart. Phys., 04, 073

Bird, S., Viel, M., & Haehnelt, M. G. 2012, MNRAS, 420, 2551

Blas, D., Lesgourgues, J., & Tram, T. 2011, J. Cosmol. Astropart. Phys., 07, 034

Boyle, A., & Komatsu, E. 2018, J. Cosmol. Astropart. Phys., 03, 035

Brinckmann, T., & Lesgourgues, J. 2019, Phys. Dark Univ., 24, 100260

Brinckmann, T., Hooper, D. C., Archidiacono, M., Lesgourgues, J., & Sprenger, T. 2019, J. Cosmol. Astropart. Phys., 01, 059

Camera, S., Harrison, I., Bonaldi, A., & Brown, M. L. 2017, MNRAS, 464, 4747

Carron, J. 2013, A&A, 551, A88

Chevallier, M., & Polarski, D. 2001, Int. J. Mod. Phys. D, 10, 213

Euclid Collaboration (Blanchard, A. et al.) 2020, A&A, 642, A191

Euclid Collaboration (Pocino, A., et al.) 2021, A&A, 655, A44

Froustey, J., Pitrou, C., & Volpe, M. C. 2020, J. Cosmol. Astropart. Phys., 12, 015

Hamann, J., Balbi, A., Lesgourgues, J., & Quercellini, C. 2009, J. Cosmol. Astropart. Phys., 04, 011

Kaiser, N. 1987, MNRAS, 227, 1

Lesgourgues, J. 2011a, arXiv e-prints [arXiv:1104.2932]

Lesgourgues, J. 2011b, arXiv e-prints [arXiv:1104.2934]

Lesgourgues, J., & Tram, T. 2014, J. Cosmol. Astropart. Phys., 09, 032

Lewis, A. 2019, arXiv e-prints [arXiv:1910.13970]

Lewis, A., Challinor, A., & Lasenby, A. 2000, ApJ, 538, 473

Linder, E. V. 2003, Phys. Rev. Lett., 90, 091301

Naidoo, K., Johnston, H., Joachimi, B., et al. 2023, A&A, 670, A149

Percival, W. J., Burkey, D., Heavens, A. et al. 2004, MNRAS, 353, 1201

Raveri, M., Martinelli, M., Zhao, G., & Wang, Y. 2016, arXiv e-prints [arXiv:1606.06268]

Sprenger, T., Archidiacono, M., Brinckmann, T., Clesse, S., & Lesgourgues, J. 2019, J. Cosmol. Astropart. Phys., 02, 047

Takahashi, R., Nishimichi, T., Namikawa, T., et al. 2020, ApJ, 895, 113

van den Busch, J. L., Hildebrandt, H., Wright, A. H., et al. 2020, A&A, 642, A200

Virtanen, P., Gommers, R., Oliphant, T. E., et al. 2020, Nat. Methods, 17, 261

Yahia-Cherif, S., Blanchard, A., Camera, S., et al. 2021, A&A, 649, A52

<footnote n="1">¹ Institute for Theoretical Particle Physics and Cosmology (TTK), RWTH Aachen University, 52056 Aachen, Germany
e-mail: s.casas@protonmail.com</footnote>

<footnote n="2">² Institut de Ciències del Cosmos (ICCUB), Universitat de Barcelona (IEEC-UB), Martí i Franquès 1, 08028 Barcelona, Spain</footnote>

<footnote n="3">³ Hamburger Sternwarte, University of Hamburg, Gojenbergsweg 112, 21029 Hamburg, Germany</footnote>
⁴ Physikalisches Institut, Ruprecht-Karls-Universität Heidelberg, Im Neuenheimer Feld 226, 69120 Heidelberg, Germany

⁵ Dipartimento di Fisica "Aldo Pontremoli", Università degli Studi di Milano, Via Celoria 16, 20133 Milano, Italy

⁶ IFPU - Institute for Fundamental Physics of the Universe, Via Beirut 2, 34151 Trieste, Italy

⁷ SISSA - International School for Advanced Studies, Via Bonomea 265, 34136 Trieste TS, Italy

⁸ INAF-Osservatorio Astronomico di Trieste, Via G. B. Tiepolo 11, 34143 Trieste, Italy

⁹ INFN - Sezione di Trieste, Via Valerio 2, 34127 Trieste TS, Italy

¹⁰ Université Libre de Bruxelles (ULB), Service de Physique Théorique CP225, Boulevard du Triomphe, 1050 Bruxelles, Belgium

¹¹ Department of Physics “E. Pancini”, University Federico II, Via Cinthia 6, 80126 Napoli, Italy

¹² INAF-Osservatorio Astronomico di Roma, Via Frascati 33, 00078 Monteporzio Catone, Italy

¹³ INFN-Sezione di Roma, Piazzale Aldo Moro, 2 – c/o Dipartimento di Fisica, Edificio G. Marconi, 00185 Roma, Italy

¹⁴ Dipartimento di Fisica, Università degli Studi di Torino, Via P. Giuria 1, 10125 Torino, Italy

¹⁵ INFN-Sezione di Torino, Via P. Giuria 1, 10125 Torino, Italy

¹⁶ INAF-Osservatorio Astrofisico di Torino, Via Osservatorio 20, 10025 Pino Torinese (TO), Italy

¹⁷ Departamento de Física, FCFM, Universidad de Chile, Blanco Encalada 2008, Santiago, Chile

¹⁸ Université Saint-Joseph; Faculty of Sciences, Beirut, Lebanon

¹⁹ Institut für Theoretische Physik, University of Heidelberg, Philosophenweg 16, 69120 Heidelberg, Germany

²⁰ Institut de Recherche en Astrophysique et Planétologie (IRAP), Université de Toulouse, CNRS, UPS, CNES, 14 Av. Édouard Belin, 31400 Toulouse, France

²¹ Dipartimento di Fisica e Scienze della Terra, Università degli Studi di Ferrara, Via Giuseppe Saragat 1, 44122 Ferrara, Italy

²² Istituto Nazionale di Fisica Nucleare, Sezione di Ferrara, Via Giuseppe Saragat 1, 44122 Ferrara, Italy

²³ INAF - IASF Milano, Via Alfonso Corti 12, 20133 Milano, Italy

²⁴ Université Paris-Saclay, CNRS/IN2P3, IJCLab, 91405 Orsay, France

²⁵ Centre National d'Études Spatiales - Centre spatial de Toulouse, 18 avenue Édouard Belin, 31401 Toulouse Cedex 9, France

²⁶ Jet Propulsion Laboratory, California Institute of Technology, 4800 Oak Grove Drive, Pasadena, CA, 91109, USA

²⁷ Université Paris-Saclay, Université Paris Cité, CEA, CNRS, Astrophysique, Instrumentation et Modélisation Paris-Saclay, 91191 Gif-sur-Yvette, France

²⁸ Université Paris-Saclay, CNRS, Institut d'Astrophysique spatiale, 91405 Orsay, France

²⁹ Institute of Cosmology and Gravitation, University of Portsmouth, Portsmouth PO1 3FX, UK

³⁰ INAF-Osservatorio di Astrofisica e Scienza dello Spazio di Bologna, Via Piero Gobetti 93/3, 40129 Bologna, Italy

³¹ Dipartimento di Fisica e Astronomia "Augusto Righi" - Alma Mater Studiorum Università di Bologna, Via Piero Gobetti 93/2, 40129 Bologna, Italy

³² INFN-Sezione di Bologna, Viale Berti Pichat 6/2, 40127 Bologna, Italy

³³ Dipartimento di Fisica, Università di Genova, Via Dodecaneso 33, 16146 Genova, Italy

³⁴ INFN-Sezione di Genova, Via Dodecaneso 33, 16146 Genova, Italy

³⁵ INAF-Osservatorio Astronomico di Capodimonte, Via Moiariello 16, 80131 Napoli, Italy

³⁶ Instituto de Astrofísica e Ciências do Espaço, Universidade do Porto, CAUP, Rua das Estrelas, 4150-762 Porto, Portugal

³⁷ Institut de Física d'Altes Energies (IFAE), The Barcelona Institute of Science and Technology, Campus UAB, 08193 Bellaterra (Barcelona), Spain

³⁸ Port d'Informació Científica, Campus UAB, C. Albareda s/n, 08193 Bellaterra (Barcelona), Spain

³⁹ INFN section of Naples, Via Cinthia 6, 80126 Napoli, Italy

⁴⁰ Dipartimento di Fisica e Astronomia "Augusto Righi" - Alma Mater Studiorum Università di Bologna, Viale Berti Pichat 6/2, 40127 Bologna, Italy

⁴¹ Institut national de physique nucléaire et de physique des particules, 3 rue Michel-Ange, 75794 Paris Cedex 16, France

⁴² Institute for Astronomy, University of Edinburgh, Royal Observatory, Blackford Hill, Edinburgh EH9 3HJ, UK

⁴³ European Space Agency/ESRIN, Largo Galileo Galilei 1, 00044 Frascati, Roma, Italy

⁴⁴ ESAC/ESA, Camino Bajo del Castillo, s/n., Urb. Villafranca del Castillo, 28692 Villanueva de la Cañada, Madrid, Spain

⁴⁵ University of Lyon, Univ. Claude-Bernard Lyon-1 CNRS/IN2P3, IP2I Lyon, UMR 5822, 69622 Villeurbanne, France

⁴⁶ Institute of Physics, Laboratory of Astrophysics, École Polytechnique Fédérale de Lausanne (EPFL), Observatoire de Sauverny, 1290 Versoix, Switzerland

⁴⁷ Mullard Space Science Laboratory, University College London, Holmbury St Mary, Dorking, Surrey RH5 6NT, UK

⁴⁸ Department of Astronomy, University of Geneva, Ch. d'Ecogia 16, 1290 Versoix, Switzerland

⁴⁹ Instituto de Astrofísica e Ciências do Espaço, Faculdade de Ciências, Universidade de Lisboa, Campo Grande, 1749-016 Lisboa, Portugal

⁵⁰ Departamento de Física, Faculdade de Ciências, Universidade de Lisboa, Edifício C8, Campo Grande, 1749-016 Lisboa, Portugal

⁵¹ INFN-Padova, Via Marzolo 8, 35131 Padova, Italy

⁵² INAF-Osservatorio Astronomico di Padova, Via dell'Osservatorio 5, 35122 Padova, Italy

⁵³ Max Planck Institute for Extraterrestrial Physics, Giessenbachstr. 1, 85748 Garching, Germany

⁵⁴ University Observatory, Faculty of Physics, Ludwig-Maximilians-Universität, Scheinerstr. 1, 81679 Munich, Germany

⁵⁵ Institute of Theoretical Astrophysics, University of Oslo, PO Box 1029 Blindern, 0315 Oslo, Norway

⁵⁶ von Hoerner & Sulger GmbH, SchloßPlatz 8, 68723 Schwetzingen, Germany

⁵⁷ Technical University of Denmark, Elektrovej 327, 2800 Kgs. Lyngby, Denmark

⁵⁸ Cosmic Dawn Center (DAWN), Elektrovej 327, Denmark

⁵⁹ Max-Planck-Institut für Astronomie, Königstuhl 17, 69117 Heidelberg, Germany

⁶⁰ Universitäts-Sternwarte München, Fakultät für Physik, Ludwig-Maximilians-Universität München, Scheinerstrasse 1, 81679 München, Germany

⁶¹ Université de Genève, Département de Physique Théorique and Centre for Astroparticle Physics, 24 quai Ernest-Ansermet, 1211 Geneva 4, Switzerland

⁶² Department of Physics, PO Box 64, 00014 University of Helsinki, Finland

⁶³ Helsinki Institute of Physics, Gustaf Hällströmin katu 2, University of Helsinki, Helsinki, Finland

⁶⁴ NOVA optical infrared instrumentation group at ASTRON, Oude Hoogeveensedijk 4, 7991 PD Dwingeloo, The Netherlands

⁶⁵ Argelander-Institut für Astronomie, Universität Bonn, Auf dem Hügel 71, 53121 Bonn, Germany

⁶⁶ Department of Physics, Institute for Computational Cosmology, Durham University, South Road, DH1 3LE, UK

⁶⁷ Université Paris Cité, CNRS, Astroparticule et Cosmologie, 75013 Paris, France

⁶⁸ European Space Agency/ESTEC, Keplerlaan 1, 2201 AZ Noordwijk, The Netherlands

⁶⁹ Department of Physics and Astronomy, University of Aarhus, Ny Munkegade 120, 8000 Aarhus C, Denmark

⁷⁰ Centre for Astrophysics, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada

⁷¹ Department of Physics and Astronomy, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada

⁷² Perimeter Institute for Theoretical Physics, Waterloo, Ontario N2L 2Y5, Canada
⁴ Physikalisches Institut, Ruprecht-Karls-Universität Heidelberg, Im Neuenheimer Feld 226, 69120 Heidelberg, Germany

⁵ Dipartimento di Fisica "Aldo Pontremoli", Università degli Studi di Milano, Via Celoria 16, 20133 Milano, Italy

⁶ IFPU - Institute for Fundamental Physics of the Universe, Via Beirut 2, 34151 Trieste, Italy

⁷ SISSA - International School for Advanced Studies, Via Bonomea 265, 34136 Trieste TS, Italy

⁸ INAF-Osservatorio Astronomico di Trieste, Via G. B. Tiepolo 11, 34143 Trieste, Italy

⁹ INFN - Sezione di Trieste, Via Valerio 2, 34127 Trieste TS, Italy

¹⁰ Université Libre de Bruxelles (ULB), Service de Physique Théorique CP225, Boulevard du Triomphe, 1050 Bruxelles, Belgium

¹¹ Department of Physics “E. Pancini”, University Federico II, Via Cinthia 6, 80126 Napoli, Italy

¹² INAF-Osservatorio Astronomico di Roma, Via Frascati 33, 00078 Monteporzio Catone, Italy

¹³ INFN-Sezione di Roma, Piazzale Aldo Moro, 2 – c/o Dipartimento di Fisica, Edificio G. Marconi, 00185 Roma, Italy

¹⁴ Dipartimento di Fisica, Università degli Studi di Torino, Via P. Giuria 1, 10125 Torino, Italy

¹⁵ INFN-Sezione di Torino, Via P. Giuria 1, 10125 Torino, Italy

¹⁶ INAF-Osservatorio Astrofisico di Torino, Via Osservatorio 20, 10025 Pino Torinese (TO), Italy

¹⁷ Departamento de Física, FCFM, Universidad de Chile, Blanco Encalada 2008, Santiago, Chile

¹⁸ Université Saint-Joseph; Faculty of Sciences, Beirut, Lebanon

¹⁹ Institut für Theoretische Physik, University of Heidelberg, Philosophenweg 16, 69120 Heidelberg, Germany

²⁰ Institut de Recherche en Astrophysique et Planétologie (IRAP), Université de Toulouse, CNRS, UPS, CNES, 14 Av. Édouard Belin, 31400 Toulouse, France

²¹ Dipartimento di Fisica e Scienze della Terra, Università degli Studi di Ferrara, Via Giuseppe Saragat 1, 44122 Ferrara, Italy

²² Istituto Nazionale di Fisica Nucleare, Sezione di Ferrara, Via Giuseppe Saragat 1, 44122 Ferrara, Italy

²³ INAF - IASF Milano, Via Alfonso Corti 12, 20133 Milano, Italy

²⁴ Université Paris-Saclay, CNRS/IN2P3, IJCLab, 91405 Orsay, France

²⁵ Centre National d'Études Spatiales - Centre spatial de Toulouse, 18 avenue Édouard Belin, 31401 Toulouse Cedex 9, France

²⁶ Jet Propulsion Laboratory, California Institute of Technology, 4800 Oak Grove Drive, Pasadena, CA, 91109, USA

²⁷ Université Paris-Saclay, Université Paris Cité, CEA, CNRS, Astrophysique, Instrumentation et Modélisation Paris-Saclay, 91191 Gif-sur-Yvette, France

²⁸ Université Paris-Saclay, CNRS, Institut d'Astrophysique spatiale, 91405 Orsay, France

²⁹ Institute of Cosmology and Gravitation, University of Portsmouth, Portsmouth PO1 3FX, UK

³⁰ INAF-Osservatorio di Astrofisica e Scienza dello Spazio di Bologna, Via Piero Gobetti 93/3, 40129 Bologna, Italy

³¹ Dipartimento di Fisica e Astronomia “Augusto Righi” - Alma Mater Studiorum Università di Bologna, Via Piero Gobetti 93/2, 40129 Bologna, Italy

³² INFN-Sezione di Bologna, Viale Berti Pichat 6/2, 40127 Bologna, Italy

³³ Dipartimento di Fisica, Università di Genova, Via Dodecaneso 33, 16146 Genova, Italy

³⁴ INFN-Sezione di Genova, Via Dodecaneso 33, 16146 Genova, Italy

³⁵ INAF-Osservatorio Astronomico di Capodimonte, Via Moiariello 16, 80131 Napoli, Italy

³⁶ Instituto de Astrofísica e Ciências do Espaço, Universidade do Porto, CAUP, Rua das Estrelas, 4150-762 Porto, Portugal

³⁷ Institut de Física d'Altes Energies (IFAE), The Barcelona Institute of Science and Technology, Campus UAB, 08193 Bellaterra (Barcelona), Spain

³⁸ Port d'Informació Científica, Campus UAB, C. Albareda s/n, 08193 Bellaterra (Barcelona), Spain

³⁹ INFN section of Naples, Via Cinthia 6, 80126 Napoli, Italy

⁴⁰ Dipartimento di Fisica e Astronomia “Augusto Righi” - Alma Mater Studiorum Università di Bologna, Viale Berti Pichat 6/2, 40127 Bologna, Italy

⁴¹ Institut national de physique nucléaire et de physique des particules, 3 rue Michel-Ange, 75794 Paris Cedex 16, France

⁴² Institute for Astronomy, University of Edinburgh, Royal Observatory, Blackford Hill, Edinburgh EH9 3HJ, UK

⁴³ European Space Agency/ESRIN, Largo Galileo Galilei 1, 00044 Frascati, Roma, Italy

⁴⁴ ESAC/ESA, Camino Bajo del Castillo, s/n., Urb. Villafranca del Castillo, 28692 Villanueva de la Cañada, Madrid, Spain

⁴⁵ University of Lyon, Univ. Claude-Bernard Lyon-1 CNRS/IN2P3, IP2I Lyon, UMR 5822, 69622 Villeurbanne, France

⁴⁶ Institute of Physics, Laboratory of Astrophysics, École Polytechnique Fédérale de Lausanne (EPFL), Observatoire de Sauverny, 1290 Versoix, Switzerland

⁴⁷ Mullard Space Science Laboratory, University College London, Holmbury St Mary, Dorking, Surrey RH5 6NT, UK

⁴⁸ Department of Astronomy, University of Geneva, Ch. d'Ecogia 16, 1290 Versoix, Switzerland

⁴⁹ Instituto de Astrofísica e Ciências do Espaço, Faculdade de Ciências, Universidade de Lisboa, Campo Grande, 1749-016 Lisboa, Portugal

⁵⁰ Departamento de Física, Faculdade de Ciências, Universidade de Lisboa, Edifício C8, Campo Grande, 1749-016 Lisboa, Portugal

⁵¹ INFN-Padova, Via Marzolo 8, 35131 Padova, Italy

⁵² INAF-Osservatorio Astronomico di Padova, Via dell'Osservatorio 5, 35122 Padova, Italy

⁵³ Max Planck Institute for Extraterrestrial Physics, Giessenbachstr. 1, 85748 Garching, Germany

⁵⁴ University Observatory, Faculty of Physics, Ludwig-Maximilians-Universität, Scheinerstr. 1, 81679 Munich, Germany

⁵⁵ Institute of Theoretical Astrophysics, University of Oslo, PO Box 1029 Blindern, 0315 Oslo, Norway

⁵⁶ von Hoerner & Sulger GmbH, SchloßPlatz 8, 68723 Schwetzingen, Germany

⁵⁷ Technical University of Denmark, Elektrovej 327, 2800 Kgs. Lyngby, Denmark

⁵⁸ Cosmic Dawn Center (DAWN), Elektrovej 327, Denmark

⁵⁹ Max-Planck-Institut für Astronomie, Königstuhl 17, 69117 Heidelberg, Germany

⁶⁰ Universitäts-Sternwarte München, Fakultät für Physik, Ludwig-Maximilians-Universität München, Scheinerstrasse 1, 81679 München, Germany

⁶¹ Université de Genève, Département de Physique Théorique and Centre for Astroparticle Physics, 24 quai Ernest-Ansermet, 1211 Geneva 4, Switzerland

⁶² Department of Physics, PO Box 64, 00014 University of Helsinki, Finland

⁶³ Helsinki Institute of Physics, Gustaf Hällströmin katu 2, University of Helsinki, Helsinki, Finland

⁶⁴ NOVA optical infrared instrumentation group at ASTRON, Oude Hoogeveensedijk 4, 7991 PD Dwingeloo, The Netherlands

⁶⁵ Argelander-Institut für Astronomie, Universität Bonn, Auf dem Hügel 71, 53121 Bonn, Germany

⁶⁶ Department of Physics, Institute for Computational Cosmology, Durham University, South Road, DH1 3LE, UK

⁶⁷ Université Paris Cité, CNRS, Astroparticule et Cosmologie, 75013 Paris, France

⁶⁸ European Space Agency/ESTEC, Keplerlaan 1, 2201 AZ Noordwijk, The Netherlands

⁶⁹ Department of Physics and Astronomy, University of Aarhus, Ny Munkegade 120, 8000 Aarhus C, Denmark

⁷⁰ Centre for Astrophysics, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada

⁷¹ Department of Physics and Astronomy, University of Waterloo, Waterloo, Ontario N2L 3G1, Canada

⁷² Perimeter Institute for Theoretical Physics, Waterloo, Ontario N2L 2Y5, Canada
<footnote n="73">73 AIM, CEA, CNRS, Université Paris-Saclay, Université de Paris, 91191 Gif-sur-Yvette, France</footnote>

<footnote n="74">74 Université Paris-Saclay, Université Paris Cité, CEA, CNRS, AIM, 91191 Gif-sur-Yvette, France</footnote>

<footnote n="75">75 Space Science Data Center, Italian Space Agency, Via del Politecnico snc, 00133 Roma, Italy</footnote>

<footnote n="76">76 Institute of Space Science, Str. Atomistilor, nr. 409 Măgurele, Ilfov, 077125, Romania</footnote>

<footnote n="77">77 Dipartimento di Fisica e Astronomia “G. Galilei”, Università di Padova, Via Marzolo 8, 35131 Padova, Italy</footnote>

<footnote n="78">78 Dipartimento di Fisica e Astronomia, Università di Bologna, Via Gobetti 93/2, 40129 Bologna, Italy</footnote>

<footnote n="79">79 Aix-Marseille Université, CNRS/IN2P3, CPPM, 13388 Marseille, France</footnote>

<footnote n="80">80 Institut d'Estudis Espacials de Catalunya (IEEC), Carrer Gran Capità 2-4, 08034 Barcelona, Spain</footnote>

<footnote n="81">81 Institut de Ciencies de l'Espai (IEEC-CSIC), Campus UAB, Carrer de Can Magrans, s/n Cerdanyola del Vallés, 08193 Barcelona, Spain</footnote>

<footnote n="82">82 Aix-Marseille Université, CNRS, CNES, LAM, 13388 Marseille, France</footnote>

<footnote n="83">83 Centro de Investigaciones Energéticas, Medioambientales y Tecnológicas (CIEMAT), Avenida Complutense 40, 28040 Madrid, Spain</footnote>

<footnote n="84">84 Instituto de Astrofísica e Ciências do Espaço, Faculdade de Ciências, Universidade de Lisboa, Tapada da Ajuda, 1349-018 Lisboa, Portugal</footnote>

<footnote n="85">85 Universidad Politécnica de Cartagena, Departamento de Electrónica y Tecnología de Computadoras, Plaza del Hospital 1, 30202 Cartagena, Spain</footnote>

<footnote n="86">86 Kapteyn Astronomical Institute, University of Groningen, PO Box 800, 9700 AV Groningen, The Netherlands</footnote>

<footnote n="87">87 INFN-Bologna, Via Irnerio 46, 40126 Bologna, Italy</footnote>

<footnote n="88">88 Infrared Processing and Analysis Center, California Institute of Technology, Pasadena, CA 91125, USA</footnote>

<footnote n="89">89 Institut d'Astrophysique de Paris, 98bis Boulevard Arago, 75014 Paris, France</footnote>

<footnote n="90">90 Junia, EPA department, 41 Bd Vauban, 59800 Lille, France</footnote>

<footnote n="91">91 INAF-Osservatorio Astronomico di Brera, Via Brera 28, 20122 Milano, Italy</footnote>

<footnote n="92">92 INFN-Sezione di Milano, Via Celoria 16, 20133 Milano, Italy</footnote>
<footnote n="73">73 AIM, CEA, CNRS, Université Paris-Saclay, Université de Paris, 91191 Gif-sur-Yvette, France</footnote>

<footnote n="74">74 Université Paris-Saclay, Université Paris Cité, CEA, CNRS, AIM, 91191 Gif-sur-Yvette, France</footnote>

<footnote n="75">75 Space Science Data Center, Italian Space Agency, Via del Politecnico snc, 00133 Roma, Italy</footnote>

<footnote n="76">76 Institute of Space Science, Str. Atomistilor, nr. 409 Măgurele, Ilfov, 077125, Romania</footnote>

<footnote n="77">77 Dipartimento di Fisica e Astronomia “G. Galilei”, Università di Padova, Via Marzolo 8, 35131 Padova, Italy</footnote>

<footnote n="78">78 Dipartimento di Fisica e Astronomia, Università di Bologna, Via Gobetti 93/2, 40129 Bologna, Italy</footnote>

<footnote n="79">79 Aix-Marseille Université, CNRS/IN2P3, CPPM, 13388 Marseille, France</footnote>

<footnote n="80">80 Institut d'Estudis Espacials de Catalunya (IEEC), Carrer Gran Capità 2-4, 08034 Barcelona, Spain</footnote>

<footnote n="81">81 Institut de Ciencies de l'Espai (IEEC-CSIC), Campus UAB, Carrer de Can Magrans, s/n Cerdanyola del Vallés, 08193 Barcelona, Spain</footnote>

<footnote n="82">82 Aix-Marseille Université, CNRS, CNES, LAM, 13388 Marseille, France</footnote>

<footnote n="83">83 Centro de Investigaciones Energéticas, Medioambientales y Tecnológicas (CIEMAT), Avenida Complutense 40, 28040 Madrid, Spain</footnote>

<footnote n="84">84 Instituto de Astrofísica e Ciências do Espaço, Faculdade de Ciências, Universidade de Lisboa, Tapada da Ajuda, 1349-018 Lisboa, Portugal</footnote>

<footnote n="85">85 Universidad Politécnica de Cartagena, Departamento de Electrónica y Tecnología de Computadoras, Plaza del Hospital 1, 30202 Cartagena, Spain</footnote>

<footnote n="86">86 Kapteyn Astronomical Institute, University of Groningen, PO Box 800, 9700 AV Groningen, The Netherlands</footnote>

<footnote n="87">87 INFN-Bologna, Via Irnerio 46, 40126 Bologna, Italy</footnote>

<footnote n="88">88 Infrared Processing and Analysis Center, California Institute of Technology, Pasadena, CA 91125, USA</footnote>

<footnote n="89">89 Institut d'Astrophysique de Paris, 98bis Boulevard Arago, 75014 Paris, France</footnote>

<footnote n="90">90 Junia, EPA department, 41 Bd Vauban, 59800 Lille, France</footnote>

<footnote n="91">91 INAF-Osservatorio Astronomico di Brera, Via Brera 28, 20122 Milano, Italy</footnote>

<footnote n="92">92 INFN-Sezione di Milano, Via Celoria 16, 20133 Milano, Italy</footnote>
# Appendix A: Input and precision settings in Einstein-Boltzmann solvers

We list below the input parameter passed to either CAMB or CLASS in our *Euclid* forecasts. Section 6 discusses the relevance of precision parameter settings for such forecasts.

## Appendix A.1. Fiducial cosmology parameters

We use the same fiducial value of cosmological parameters as in EP:VII:
CAMB

use Physical = T # to pass big Omegas

sigma8 = 0.815584

hubble = 67

omega_baryon = 0.05

omega_m = 0.32

scalar_spectral_index(1) = 0.96

w = -1.0

wa = 0.0

dark_energy_model = PPF # use PPF scheme in DE perturbations, as in CLASS

helium_fraction = 0.2454006

tempcmb = 2.7255 # relevant in neutrino mass conversion

reionization = F # Reio is irrelevant here. Switching it off gives a small

# speedup. Not possible when CMB included.

We get the same fiducial cosmology in CLASS with the following settings:

CLASS

sigma8 = 0.815584

h = 0.67

Omega_b = 0.05

Omega_m = 0.32

n_s = 0.96

w0_fld=-1.

wa_fld=0.

Omega_Lambda=0 # setting the true cosmological constant to zero, in order

# to activate the DE fluid (fld) with a CPL equation of state

YHe = 0.2454006 # Helium fraction

Tcmb = 2.7255 # relevant in neutrino mass conversion

reio_parametrization = reio_none

## Appendix A.2. Neutrino settings

This issue is actually tricky because by default CAMB and CLASS model the details of the neutrino sector differently. The modelling used in CLASS aims at being closer to reality (that is, to the results of the most detailed studies of neutrino decoupling, such as Froustey et al. (2020); Bennett et al. (2021)). However, for the purpose of comparing our forecast pipelines – rather than

fitting real data – the quest for realism is irrelevant: we just want the neutrino modelling to be reasonable and identical in the two codes. Then, it is easier to set up CLASS parameters in such way to mimic the CAMB neutrino model.

The CAMB neutrino model used here is the one corresponding to the option share_delta_neff = T, explained in its documentation website 20. The relevant neutrino parameters that we pass to CAMB are:

CAMB

share_delta_neff = T

num mass eigenstates = 1

massless_neutrinos = 2.046

massive neutrinos = 1

mnu=0.06

In CAMB these settings trigger several non-trivial operations, with the goal of having the same temperature shared by the three neutrino species. The true effective number of ultra-relativistic degrees of freedom (i.e. massless neutrinos) actually used in the CAMB equations is redefined internally from 2.046 to a new number:

$$N_{\text{ur}} = 2 + \frac{2}{3} \times (2.046 - \text{floor}[2.046]) \approx 2.030666, \quad (\text{A.1})$$

while the massive neutrinos are modelled as a perfect Fermi-Dirac species with a temperature $T_ν$ and fractional density $\Omega_ν$ computed as

$$\frac{T_ν}{T_γ} = \left(\frac{4}{11}\right)^{1/3} \left(\frac{1 + 2.046}{3}\right)^{1/4} \\ = 0.7164864,$$

$$\Omega_ν h^2 = \frac{0.06 \text{ eV}}{94.07 \text{ eV}} \left(\frac{1 + 2.046}{3}\right)^{3/4} \quad (\text{A.2}) \\ = 6.451439 \times 10^{-4} \\ \Rightarrow \Omega_ν = 1.437166 \times 10^{-3}.$$

To mimic exactly the same settings, we must pass these last numbers to CLASS:

CLASS

N_ncdm = 1

N ur = 2.030666

T_ncdm = 0.7164864

Omega_ncdm = 0.001437166

## Appendix A.3. Linear matter power spectrum settings

The following output settings allow CAMB and CLASS to output the matter power spectrum with a fine enough sampling to avoid interpolation errors within the likelihood codes.

CAMB

transfer_high_precision = T

transfer_kmax = 50

transfer_k_per_logint = 50

<footnote n="20">20 https://cosmologist.info/notes/CAMB.pdf</footnote>
# Appendix A: Input and precision settings in Einstein-Boltzmann solvers

We list below the input parameter passed to either CAMB or CLASS in our *Euclid* forecasts. Section 6 discusses the relevance of precision parameter settings for such forecasts.

## Appendix A.1. Fiducial cosmology parameters

We use the same fiducial value of cosmological parameters as in EP:VII:
CAMB

use Physical = T # to pass big Omegas

sigma8 = 0.815584

hubble = 67

omega_baryon = 0.05

omega_m = 0.32

scalar_spectral_index(1) = 0.96

w = -1.0

wa = 0.0

dark_energy_model = PPF # use PPF scheme in DE perturbations, as in CLASS

helium_fraction = 0.2454006

tempcmb = 2.7255 # relevant in neutrino mass conversion

reionization = F # Reio is irrelevant here. Switching it off gives a small

# speedup. Not possible when CMB included.

We get the same fiducial cosmology in CLASS with the following settings:

CLASS

sigma8 = 0.815584

h = 0.67

Omega_b = 0.05

Omega_m = 0.32

n_s = 0.96

w0_fld=-1.

wa_fld=0.

Omega_Lambda=0 # setting the true cosmological constant to zero, in order

# to activate the DE fluid (fld) with a CPL equation of state

YHe = 0.2454006 # Helium fraction

Tcmb = 2.7255 # relevant in neutrino mass conversion

reio_parametrization = reio_none

## Appendix A.2. Neutrino settings

This issue is actually tricky because by default CAMB and CLASS model the details of the neutrino sector differently. The modelling used in CLASS aims at being closer to reality (that is, to the results of the most detailed studies of neutrino decoupling, such as Froustey et al. (2020); Bennett et al. (2021)). However, for the purpose of comparing our forecast pipelines – rather than

fitting real data – the quest for realism is irrelevant: we just want the neutrino modelling to be reasonable and identical in the two codes. Then, it is easier to set up CLASS parameters in such way to mimic the CAMB neutrino model.

The CAMB neutrino model used here is the one corresponding to the option share_delta_neff = T, explained in its documentation website 20. The relevant neutrino parameters that we pass to CAMB are:

CAMB

share_delta_neff = T

num mass eigenstates = 1

massless_neutrinos = 2.046

massive neutrinos = 1

mnu=0.06

In CAMB these settings trigger several non-trivial operations, with the goal of having the same temperature shared by the three neutrino species. The true effective number of ultra-relativistic degrees of freedom (i.e. massless neutrinos) actually used in the CAMB equations is redefined internally from 2.046 to a new number:

$$N_{\text{ur}} = 2 + \frac{2}{3} \times (2.046 - \text{floor}[2.046]) \approx 2.030666, \quad (\text{A.1})$$

while the massive neutrinos are modelled as a perfect Fermi-Dirac species with a temperature $T_ν$ and fractional density $\Omega_ν$ computed as

$$\frac{T_ν}{T_γ} = \left(\frac{4}{11}\right)^{1/3} \left(\frac{1 + 2.046}{3}\right)^{1/4} \\ = 0.7164864,$$

$$\Omega_ν h^2 = \frac{0.06 \text{ eV}}{94.07 \text{ eV}} \left(\frac{1 + 2.046}{3}\right)^{3/4} \\ = 6.451439 \times 10^{-4} \\ \Rightarrow \Omega_ν = 1.437166 \times 10^{-3}. \quad (\text{A.2})$$

To mimic exactly the same settings, we must pass these last numbers to CLASS:

CLASS

N_ncdm = 1

N.ur = 2.030666

T_ncdm = 0.7164864

Omega_ncdm = 0.001437166

## Appendix A.3. Linear matter power spectrum settings

The following output settings allow CAMB and CLASS to output the matter power spectrum with a fine enough sampling to avoid interpolation errors within the likelihood codes.

CAMB

transfer_high_precision = T

transfer_kmax = 50

transfer_k_per_logint = 50

<footnote n="20">20 https://cosmologist.info/notes/CAMB.pdf</footnote>
CLASS

P_k_max_h/Mpc = 50.
k_per_decade_for_pk = 50
k_per_decade_for_bao = 50

(The CosmicFish internal mode expects a kmax in units of 1/Mpc: in this case we pass P_k_max_1/Mpc = 50.)

Appendix A.4. Nonlinear power spectrum settings

The following parameters are only relevant for the photometric
likelihood, which requires a nonlinear power spectrum in input.
We stick to the choice of EP:VII to use the Halofit version of
Takahashi et al. (2020), including neutrino corrections found by
Bird et al. (2012) and implemented in both CAMB and CLASS:
CAMB

do_nonlinear = 1
halofit_version = 4

Besides, it is crucial to change the value of a tolerance
parameter in the version of the Halofit algorithm implemented
in CAMB. The file fortran/halofit.f90 contains a function
THalofit_GetNonLinRatios() that computes a characteris-
tic radius rmid with a bisection method. The bisection accuracy
is set by the line

if (abs(diff).le.0.001) then

It is essential to substitute this tolerance by a new precision
parameter or a hard-coded value equal to (or smaller than) 10⁻⁶.
Otherwise, the error on rmid is way too large given the Euclid
sensitivity, and leads to inaccurate derivatives in the Fisher
matrix calculation. In our implementation, this new CAMB preci-
sion parameter is called halofit_tolsigma. We discuss our
settings for this parameter together with that of other important
accuracy parameters in Appendix A.5.

The Halofit version implemented in CLASS coincides with the “Halofit version 4” of CAMB. We need to ask CLASS to use a large enough kmax for the sake of convergence of the Halofit algorithm even at high redshift:

CLASS

non linear = halofit
nonlinear_min_k_max = 80.

Within CLASSthe tolerance parameter mentioned above is
also called halofit_tolsigma and set by default to 10⁻⁶,
which proves to be sufficient for computing Euclid Fisher
matrices with the CosmicFish method. However, as discussed
in Appendix B.3, the calculation of Fisher matrices with the
MontePython method requires even higher precision. We dis-
cuss our settings for this parameter together with that of other
important accuracy parameters in Appendix A.5.

Appendix A.5. High-precision settings

High-precision settings slow down the two codes substantially,
but they guarantee excellent mutual agreement between them, as
well as a low level of numerical noise that allows us to com-
pute numerical derivatives w.r.t. cosmological parameters using
smaller stepsizes. These settings relate mainly to the multipole
ℓmax at which the various Boltzmann hierarchies are truncated,
to the sampling of perturbations in wavenumber space, to inte-
gration time steps and to the use of various approximation
schemes.

For CAMBwe always use the following precision settings:

CAMB

do_late_rad_truncation = T
high State default = T
transfer_interp_matterpower = T
accurate_reionization = F

There are three additional parameters playing a particularly
important role, and for which we define three levels called P1,
P2, P3:
CAMB (P1 / P2 / P3)

accuracy_boost = 2 / 2 / 3
l State boost = 2 / 2 / 3
halofit_tolsigma = 1.e-3 / 1.e-6 / 1.e-6

We compare P1, P2, and P3 in Sect. 6, but in the rest of this
work we stick to P3.

For CLASSwe show in Sect. 6 that default precision (DP)
is usually sufficient when computing the Euclid Fisher matri-
ces with the CosmicFish method. However, the calculation
of Fisher matrices with the MontePython method requires
enhanced settings:

CLASS(HP)

l_max_g=20
l_max_pol_g=15
radiation_streaming bicompression = 2
radiation_streaming_trigger tau over tau_k = 240.
radiation_streaming_trigger tau_c over tau = 100.
tol_ncdm synchronous = 1.e-5
l_max_ncdm=22
ncdmFluid trigger tau over tau_k = 41.

background_Nloga = 6000
thermo_Nz_log = 20000
thermo_Nz_lin = 40000
tol_perturbations_integration = 1.e-6

halofit_tolsigma = 1.e-8

The first eight parameters increase the precision of the
system of perturbation equations (by truncating Boltzmann hier-
archies at higher multipoles, better sampling neutrino momenta
and using approximations in a smaller region). The next four
parameters reduce the integration stepsize in the ordinary dif-
ferential equations describing respectively the background, ther-
modynamical and perturbation evolution. They also reduce
interpolation errors when the perturbation equations require the
CLASS

P_k_max_h/Mpc = 50.
k_per_decade_for_pk = 50
k_per_decade_for_bao = 50

(The CosmicFish internal mode expects a kmax in units of 1/Mpc: in this case we pass P_k_max_1/Mpc = 50.)

Appendix A.4. Nonlinear power spectrum settings

The following parameters are only relevant for the photometric
likelihood, which requires a nonlinear power spectrum in input.
We stick to the choice of EP:VII to use the Halofit version of
Takahashi et al. (2020), including neutrino corrections found by
Bird et al. (2012) and implemented in both CAMB and CLASS:
CAMB

do_nonlinear = 1
halofit_version = 4

Besides, it is crucial to change the value of a tolerance
parameter in the version of the Halofit algorithm implemented
in CAMB. The file fortran/halofit.f90 contains a function
THalofit_GetNonLinRatios() that computes a characteris-
tic radius rmid with a bisection method. The bisection accuracy
is set by the line

if (abs(diff).le.0.001) then

It is essential to substitute this tolerance by a new precision
parameter or a hard-coded value equal to (or smaller than) 10⁻⁶.
Otherwise, the error on rmid is way too large given the Euclid
sensitivity, and leads to inaccurate derivatives in the Fisher
matrix calculation. In our implementation, this new CAMB preci-
sion parameter is called halofit_tolsigma. We discuss our
settings for this parameter together with that of other important
accuracy parameters in Appendix A.5.

The Halofit version implemented in CLASS coincides with the “Halofit version 4” of CAMB. We need to ask CLASS to use a large enough kmax for the sake of convergence of the Halofit algorithm even at high redshift:

CLASS

non linear = halofit
nonlinear_min_k_max = 80.

Within CLASSthe tolerance parameter mentioned above is
also called halofit_tolsigma and set by default to 10⁻⁶,
which proves to be sufficient for computing Euclid Fisher
matrices with the CosmicFish method. However, as discussed
in Appendix B.3, the calculation of Fisher matrices with the
MontePython method requires even higher precision. We dis-
cuss our settings for this parameter together with that of other
important accuracy parameters in Appendix A.5.

Appendix A.5. High-precision settings

High-precision settings slow down the two codes substantially,
but they guarantee excellent mutual agreement between them, as
well as a low level of numerical noise that allows us to com-
pute numerical derivatives w.r.t. cosmological parameters using
smaller stepsizes. These settings relate mainly to the multipole
ℓmax at which the various Boltzmann hierarchies are truncated,
to the sampling of perturbations in wavenumber space, to inte-
gration time steps and to the use of various approximation
schemes.

For CAMBwe always use the following precision settings:

CAMB

do_late_rad_truncation = T
high State default = T
transfer_interp_matterpower = T
accurate_reionization = F

There are three additional parameters playing a particularly
important role, and for which we define three levels called P1,
P2, P3:
CAMB (P1 / P2 / P3)

accuracy_boost = 2 / 2 / 3
l State boost = 2 / 2 / 3
halofit_tolsigma = 1.e-3 / 1.e-6 / 1.e-6

We compare P1, P2, and P3 in Sect. 6, but in the rest of this
work we stick to P3.

For CLASSwe show in Sect. 6 that default precision (DP)
is usually sufficient when computing the Euclid Fisher matri-
ces with the CosmicFish method. However, the calculation
of Fisher matrices with the MontePython method requires
enhanced settings:

CLASS(HP)

l_max_g=20
l_max_pol_g=15
radiation_streaming bicompression = 2
radiation_streaming_trigger tau over tau_k = 240.
radiation_streaming_trigger tau_c over tau = 100.
tol_ncdm synchronous = 1.e-5
l_max_ncdm=22
ncdm fluid trigger tau over tau_k = 41.

background_Nloga = 6000
thermo_Nz_log = 20000
thermo_Nz_bin = 40000
tol_perturbations_integratio = 1.e-6

halofit_tol_siga = 1.e-8

The first eight parameters increase the precision of the
system of perturbation equations (by truncating Boltzmann hier-
archies at higher multipoles, better sampling neutrino momenta
and using approximations in a smaller region). The next four
parameters reduce the integration stepsize in the ordinary dif-
ferential equations describing respectively the background, ther-
modynamical and perturbation evolution. They also reduce
interpolation errors when the perturbation equations require the
<table><caption>**Table B.1.** Fiducial values and MCMC marginalised errors for all free parameters in the photometric probe.</caption><thead><tr><th rowspan="2">parameter</th><th rowspan="2">fiducial value</th><th colspan="2">σ<sub>α</sub><sup>marg.</sup></th></tr><tr><th>pessimistic</th><th>optimistic</th></tr></thead><tbody><tr><td>Ω<sub>b,0</sub></td><td>0.05</td><td>2.6 × 10<sup>-3</sup></td><td>2.2 × 10<sup>-3</sup></td></tr><tr><td>Ω<sub>m,0</sub></td><td>0.32</td><td>3.8 × 10<sup>-3</sup></td><td>2.0 × 10<sup>-3</sup></td></tr><tr><td>h</td><td>0.67</td><td>2.1 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>n<sub>s</sub></td><td>0.96</td><td>1.1 × 10<sup>-2</sup></td><td>3.8 × 10<sup>-3</sup></td></tr><tr><td>σ<sub>8</sub></td><td>0.815584</td><td>4.4 × 10<sup>-3</sup></td><td>2.0 × 10<sup>-3</sup></td></tr><tr><td>w<sub>0</sub></td><td>-1</td><td>4.5 × 10<sup>-2</sup></td><td>2.8 × 10<sup>-2</sup></td></tr><tr><td>w<sub>a</sub></td><td>0</td><td>1.8 × 10<sup>-1</sup></td><td>1.0 × 10<sup>-1</sup></td></tr><tr><td>Λ<sub>IA</sub></td><td>1.72</td><td>1.8 × 10<sup>-1</sup></td><td>1.2 × 10<sup>-1</sup></td></tr><tr><td>η<sub>IA</sub></td><td>-0.41</td><td>1.1 × 10<sup>-1</sup></td><td>7.4 × 10<sup>-2</sup></td></tr><tr><td>b<sub>1</sub></td><td>1.0998</td><td>7.8 × 10<sup>-3</sup></td><td>2.4 × 10<sup>-3</sup></td></tr><tr><td>b<sub>2</sub></td><td>1.2202</td><td>9.0 × 10<sup>-3</sup></td><td>3.3 × 10<sup>-3</sup></td></tr><tr><td>b<sub>3</sub></td><td>1.2724</td><td>9.8 × 10<sup>-3</sup></td><td>3.8 × 10<sup>-3</sup></td></tr><tr><td>b<sub>4</sub></td><td>1.3166</td><td>1.0 × 10<sup>-2</sup></td><td>4.2 × 10<sup>-3</sup></td></tr><tr><td>b<sub>5</sub></td><td>1.3581</td><td>1.1 × 10<sup>-2</sup></td><td>4.7 × 10<sup>-3</sup></td></tr><tr><td>b<sub>6</sub></td><td>1.3998</td><td>1.2 × 10<sup>-2</sup></td><td>5.1 × 10<sup>-3</sup></td></tr><tr><td>b<sub>7</sub></td><td>1.4446</td><td>1.3 × 10<sup>-2</sup></td><td>5.6 × 10<sup>-3</sup></td></tr><tr><td>b<sub>8</sub></td><td>1.4965</td><td>1.3 × 10<sup>-2</sup></td><td>5.8 × 10<sup>-3</sup></td></tr><tr><td>b<sub>9</sub></td><td>1.5652</td><td>1.4 × 10<sup>-2</sup></td><td>6.3 × 10<sup>-3</sup></td></tr><tr><td>b<sub>10</sub></td><td>1.7430</td><td>1.6 × 10<sup>-2</sup></td><td>7.1 × 10<sup>-3</sup></td></tr></tbody></table>

evaluation of background and thermodynamical quantities at a given value of the scale factor $a$. The last parameter reduces random errors in Halofit caused by a bisection algorithm.

In DP mode none of these parameters are passed to the code. We illustrate the impact of DP versus HP in Sec. 6, and we stick to HP everywhere else when computing Fisher matrices. Instead, for MCMC runs we always stick to DP settings.

# Appendix B: Fiducial parameter and choice of step sizes

## Appendix B.1. Fiducial parameters

In Table B.1 (resp. Table B.2), we summarise our choice of fiducial values and step sizes for the cosmological and nuisance parameters of the photometric (resp. spectroscopic) probe. The fiducial values are the same as in EP:VII. In the last two columns of each table we show the marginalised errors (inferred from MCMC runs), which play a role in the discussion of Fig. B.3.

## Appendix B.2. Stepsizes in CosmicFish

In EP:VII the different codes always computed the first-order derivatives $\partial_{\alpha}C_{\ell}$ or $\partial_{\alpha}P(k, \mu, z)$ with the SteM method or the n-point stencil method, which rely on the evaluation of the $C_{\ell}$'s or $P(k, z)$ at a few different values of the parameter $p_{\alpha}$ – see Appendix B of Camera et al. (2017) for further details. However, in this work, we checked explicitly that the CosmicFish results stay the same when switching to a simpler two-sided derivative scheme, with steps roughly of the order of 1% of the fiducial parameter values (or 0.01 in the case of $w_0$ and $w_a$).

We attribute this feature mainly to our use of higher precision settings in CAMB, and in particular to the reduction of the tolerance parameter of CAMB’s Halofit version from $10^{-3}$ to $10^{-8}$, see Appendix A.4. This leads to a significant reduction of the numerical noise in the CAMB output, mainly for nonlinear spectra used by the photometric probe. Thus, it removes the need to average the noise over several output spectra, as done implicitly within the SteM scheme. The main CosmicFish results of this work have been obtained with step sizes set to exactly 1% of the fiducial values of Table B.1 and B.2 (or to 0.01 for $w_0$ and $w_a$). We checked that changing the step sizes by a factor two does not impact the results. CosmicFish does not use a finite difference method to evaluate derivatives with respect to the shot noise parameters because these are trivial (for $\alpha = p(z_i)$, one gets $\partial_{\alpha}P_{\text{obs}} = 1$).

## Appendix B.3. Stepsizes in MontePython/Fisher

Since the MP/Fisher and CosmicFish pipelines need to compute some intrinsically different numerical derivatives (second derivatives of $\mathcal{L}$ versus first derivatives of $C_{\ell}$'s or $P(k)$'s), the step sizes also need to be optimised independently in the two cases.

When the step sizes are too small, there is a risk that the difference $\Delta\mathcal{L}$ between likelihood values computed at $(p_{\alpha} \pm \Delta p_{\alpha}, p_{\beta} \pm \Delta p_{\beta})$ is dominated by numerical errors rather than physical effects. When the step sizes are too big, we may exit from the region in which the likelihood is Gaussian, that is, $\chi^2(p_1, ..., p_N)$ is quadratic. The $\chi^2$ would then pick up higher order contributions, starting from cubic terms. As a result, the matrix $\partial_{\alpha}\partial_{\beta}(-\ln \mathcal{L})$ would strongly depend on step sizes and would no longer represent the Fisher matrix.
<table><caption>**Table B.1.** Fiducial values and MCMC marginalised errors for all free parameters in the photometric probe.</caption><thead><tr><th rowspan="2">parameter</th><th rowspan="2">fiducial value</th><th colspan="2">σ<sub>α</sub><sup>marg.</sup></th></tr><tr><th>pessimistic</th><th>optimistic</th></tr></thead><tbody><tr><td>Ω<sub>b,0</sub></td><td>0.05</td><td>2.6 × 10<sup>-3</sup></td><td>2.2 × 10<sup>-3</sup></td></tr><tr><td>Ω<sub>m,0</sub></td><td>0.32</td><td>3.8 × 10<sup>-3</sup></td><td>2.0 × 10<sup>-3</sup></td></tr><tr><td>h</td><td>0.67</td><td>2.1 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>n<sub>s</sub></td><td>0.96</td><td>1.1 × 10<sup>-2</sup></td><td>3.8 × 10<sup>-3</sup></td></tr><tr><td>σ<sub>8</sub></td><td>0.815584</td><td>4.4 × 10<sup>-3</sup></td><td>2.0 × 10<sup>-3</sup></td></tr><tr><td>w<sub>0</sub></td><td>-1</td><td>4.5 × 10<sup>-2</sup></td><td>2.8 × 10<sup>-2</sup></td></tr><tr><td>w<sub>a</sub></td><td>0</td><td>1.8 × 10<sup>-1</sup></td><td>1.0 × 10<sup>-1</sup></td></tr><tr><td>Λ<sub>IA</sub></td><td>1.72</td><td>1.8 × 10<sup>-1</sup></td><td>1.2 × 10<sup>-1</sup></td></tr><tr><td>η<sub>IA</sub></td><td>-0.41</td><td>1.1 × 10<sup>-1</sup></td><td>7.4 × 10<sup>-2</sup></td></tr><tr><td>b<sub>1</sub></td><td>1.0998</td><td>7.8 × 10<sup>-3</sup></td><td>2.4 × 10<sup>-3</sup></td></tr><tr><td>b<sub>2</sub></td><td>1.2202</td><td>9.0 × 10<sup>-3</sup></td><td>3.3 × 10<sup>-3</sup></td></tr><tr><td>b<sub>3</sub></td><td>1.2724</td><td>9.8 × 10<sup>-3</sup></td><td>3.8 × 10<sup>-3</sup></td></tr><tr><td>b<sub>4</sub></td><td>1.3166</td><td>1.0 × 10<sup>-2</sup></td><td>4.2 × 10<sup>-3</sup></td></tr><tr><td>b<sub>5</sub></td><td>1.3581</td><td>1.1 × 10<sup>-2</sup></td><td>4.7 × 10<sup>-3</sup></td></tr><tr><td>b<sub>6</sub></td><td>1.3998</td><td>1.2 × 10<sup>-2</sup></td><td>5.1 × 10<sup>-3</sup></td></tr><tr><td>b<sub>7</sub></td><td>1.4446</td><td>1.3 × 10<sup>-2</sup></td><td>5.6 × 10<sup>-3</sup></td></tr><tr><td>b<sub>8</sub></td><td>1.4965</td><td>1.3 × 10<sup>-2</sup></td><td>5.8 × 10<sup>-3</sup></td></tr><tr><td>b<sub>9</sub></td><td>1.5652</td><td>1.4 × 10<sup>-2</sup></td><td>6.3 × 10<sup>-3</sup></td></tr><tr><td>b<sub>10</sub></td><td>1.7430</td><td>1.6 × 10<sup>-2</sup></td><td>7.1 × 10<sup>-3</sup></td></tr></tbody></table>

evaluation of background and thermodynamical quantities at a given value of the scale factor $a$. The last parameter reduces random errors in Halofit caused by a bisection algorithm.

In DP mode none of these parameters are passed to the code. We illustrate the impact of DP versus HP in Sec. 6, and we stick to HP everywhere else when computing Fisher matrices. Instead, for MCMC runs we always stick to DP settings.

# Appendix B: Fiducial parameter and choice of step sizes

## Appendix B.1. Fiducial parameters

In Table B.1 (resp. Table B.2), we summarise our choice of fiducial values and step sizes for the cosmological and nuisance parameters of the photometric (resp. spectroscopic) probe. The fiducial values are the same as in EP:VII. In the last two columns of each table we show the marginalised errors (inferred from MCMC runs), which play a role in the discussion of Fig. B.3.

## Appendix B.2. Stepsizes in CosmicFish

In EP:VII the different codes always computed the first-order derivatives $\partial_{\alpha}C_{\ell}$ or $\partial_{\alpha}P(k, \mu, z)$ with the SteM method or the n-point stencil method, which rely on the evaluation of the $C_{\ell}$'s or $P(k, z)$ at a few different values of the parameter $p_{\alpha}$ – see Appendix B of Camera et al. (2017) for further details. However, in this work, we checked explicitly that the CosmicFish results stay the same when switching to a simpler two-sided derivative scheme, with steps roughly of the order of 1% of the fiducial parameter values (or 0.01 in the case of $w_0$ and $w_a$).

We attribute this feature mainly to our use of higher precision settings in CAMB, and in particular to the reduction of the tolerance parameter of CAMB’s Halofit version from $10^{-3}$ to $10^{-8}$, see Appendix A.4. This leads to a significant reduction of the numerical noise in the CAMB output, mainly for nonlinear spectra used by the photometric probe. Thus, it removes the need to average the noise over several output spectra, as done implicitly within the SteM scheme. The main CosmicFish results of this work have been obtained with step sizes set to exactly 1% of the fiducial values of Table B.1 and B.2 (or to 0.01 for $w_0$ and $w_a$). We checked that changing the step sizes by a factor two does not impact the results. CosmicFish does not use a finite difference method to evaluate derivatives with respect to the shot noise parameters because these are trivial (for $\alpha = p(z_i)$, one gets $\partial_{\alpha}P_{\text{obs}} = 1$).

## Appendix B.3. Stepsizes in MontePython/Fisher

Since the MP/Fisher and CosmicFish pipelines need to compute some intrinsically different numerical derivatives (second derivatives of $\mathcal{L}$ versus first derivatives of $C_{\ell}$’s or $P(k)$’s), the step sizes also need to be optimised independently in the two cases.

When the step sizes are too small, there is a risk that the difference $\Delta\mathcal{L}$ between likelihood values computed at $(p_{\alpha} \pm \Delta p_{\alpha}, p_{\beta} \pm \Delta p_{\beta})$ is dominated by numerical errors rather than physical effects. When the step sizes are too big, we may exit from the region in which the likelihood is Gaussian, that is, $\chi^2(p_1, ..., p_N)$ is quadratic. The $\chi^2$ would then pick up higher order contributions, starting from cubic terms. As a result, the matrix $\partial_{\alpha}\partial_{\beta}(-\ln \mathcal{L})$ would strongly depend on step sizes and would no longer represent the Fisher matrix.
<table><caption>**Table B.2.** Fiducial values and MCMC marginalised errors for all free parameters in the spectroscopic probe.</caption><thead><tr><th rowspan="2">parameter</th><th rowspan="2">fiducial value</th><th colspan="2">σ<sup>mag.</sup><sub>α</sub></th></tr><tr><th>pessimistic</th><th>optimistic</th></tr></thead><tbody><tr><td>Ω<sub>b,0</sub></td><td>0.05</td><td>2.0 × 10<sup>-3</sup></td><td>1.9 × 10<sup>-3</sup></td></tr><tr><td>Ω<sub>m,0</sub></td><td>0.32</td><td>1.1 × 10<sup>-2</sup></td><td>9.5 × 10<sup>-3</sup></td></tr><tr><td>h</td><td>0.67</td><td>3.4 × 10<sup>-3</sup></td><td>2.9 × 10<sup>-3</sup></td></tr><tr><td>n<sub>s</sub></td><td>0.96</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>σ<sub>8</sub></td><td>0.815584</td><td>1.2 × 10<sup>-2</sup></td><td>1.1 × 10<sup>-2</sup></td></tr><tr><td>w<sub>0</sub></td><td>-1</td><td>9.6 × 10<sup>-2</sup></td><td>8.7 × 10<sup>-2</sup></td></tr><tr><td>w<sub>a</sub></td><td>0</td><td>3.3 × 10<sup>-1</sup></td><td>2.8 × 10<sup>-1</sup></td></tr><tr><td>P<sub>S1</sub></td><td>0</td><td>35</td><td>19</td></tr><tr><td>P<sub>S2</sub></td><td>0</td><td>34</td><td>19</td></tr><tr><td>P<sub>S3</sub></td><td>0</td><td>36</td><td>20</td></tr><tr><td>P<sub>S4</sub></td><td>0</td><td>36</td><td>22</td></tr><tr><td>ln[b<sub>1</sub>σ<sub>8</sub>(z<sub>1</sub>)]</td><td>-0.3256</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>ln[b<sub>2</sub>σ<sub>8</sub>(z<sub>2</sub>)]</td><td>-0.3160</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>ln[b<sub>3</sub>σ<sub>8</sub>(z<sub>3</sub>)]</td><td>-0.3117</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>ln[b<sub>4</sub>σ<sub>8</sub>(z<sub>4</sub>)]</td><td>-0.3203</td><td>1.3 × 10<sup>-2</sup></td><td>1.2 × 10<sup>-2</sup></td></tr></tbody></table>

If the precision of the EBS and of the likelihood code are sufficient, there should exist a range of intermediate step sizes such numerical noise is under control while $F_{ij}$ is nearly constant as a function of step sizes. This can be checked explicitly. For diagonal coefficients of the Fisher matrix, one can plot $F_{αα} = \partial_α^2(-\ln \mathcal{L})$ as a function of the step $\Delta p_α$. One should be able to see three regions: for too small $\Delta p_α$, $F_{αα}$ should feature random fluctuations; For intermediate $\Delta p_α$, it should remain flat; For too large $\Delta p_α$, it should either raise or decrease, depending on the sign of higher order corrections. For non-diagonal coefficients one may plot $F_{αβ}$ as a two-dimensional function of $(\Delta p_α, \Delta p_β)$, and draw similar conclusions.

After performing such tests, one can choose some arbitrary step sizes provided that they lay within the intermediate region. These tests also allow us to check the accuracy of the Einstein-Boltzmann and likelihood codes. If both codes are accurate enough for the purpose of computing the Fisher matrix, there exist a wide range of intermediate step sizes for each parameter. If one of the codes is not sufficiently accurate, there is no intermediate region, that is, derivative curves show no transition between the unstable region and the non-Gaussian region.

Since doing all these tests can be very time-consuming, we do not want to perform them extensively before each new calculation of a Fisher matrix. In this work, we adopt a pragmatic approach:

1. We first compute the marginalised errors on each parameter $p_α$, $\sigma_α^{\text{mag.}}$, using either CosmicFish, or MP/MCMC runs, or preliminary runs of MP/Fisher – this makes no difference. We set these $\sigma_α^{\text{mag.}}$'s as reference values with respect to which we can calibrate our step sizes. Our values of $\sigma_α^{\text{mag.}}$ are listed in the last two columns of Tables B.1 and B.2.

2. We compute a few diagonal and non-diagonal Fisher matrix elements $F_{αβ}$ with the step sizes $(\Delta p_α = x \sigma_α^{\text{mag.}}, \Delta p_β = x \sigma_β^{\text{mag.}})$ for various values of $x$ (typically in the range $0.01 < x < 1$) and we plot the curves $F_{αβ}(x)$.

3. We check that there exist an intermediate range of values of $x$ such that the curves are stable and flat. If not, we push the accuracy settings of the codes and we start the test again. If yes, we choose an arbitrary value of $x$ sitting comfortably within the intermediate region.

4. Once this test has been done once for each probe, we can make general recommendations to use a given accuracy in the codes and to set correctly the order of magnitude of the steps relatively to the marginalised errors.

5. Then, there is no need to repeat this test again and again. The user can trust the fact that with such recommendations, the Fisher matrix is accurate and stable against small variations of the step sizes. At most, as a cross-check, the user can try once to increase or decrease all step sizes (for instance, by ~30%), recompute the Fisher matrix, and verify that it remains stable.

We have performed such tests for each probe and for a few matrix elements $F_{αβ}$. We focused particularly on the non-diagonal element $F_{w_0 w_a}$, which is among the most difficult ones to compute accurately given the strong correlation between $w_0$ and $w_a$.

For each probe, we have computed the function $F_{w_0 w_a}(x)$ for 40 values of $x$ ranging from 0.025 to 1 with a spacing $\Delta x = 0.025$, while using CLASS with either the default-precision (DP) or high-precision (HP) settings defined in Appendix A.5. Once the value of $x$ has been set, we multiply it with the marginalised errors of Tables B.1 and B.2 to get our actual step sizes (these errors are derived from our MCMC runs, but we could have indifferently taken some marginalised errors from CosmicFish). For sufficiently large values of $x$ the points lay on a parabola ($F_{w_0 w_a}(x) \propto x^2$) that corresponds to the leading-order deviation from a Gaussian likelihood (since an exact Gaussian likelihood would give $F_{w_0 w_a}(x) = \text{constant}$). This happens typically for $x \ge 0.1$ with HP or above a larger threshold with DP. We then infer the asymptotic value $F_{w_0 w_a}^{\text{fit}}(0)$ from a parabolic fit to the set of points computed with high-precision settings in the range $0.1 \le x \le 1$. Finally, in Fig. B.1, we show the quantity

$$y \equiv 100 \left( \frac{F_{w_0 w_a}(x)}{F_{w_0 w_a}^{\text{fit}}(0)} - 1 \right) \qquad (\text{B.1})$$

as a function of the step-size-to-error ratio $x = \Delta p_α/\sigma_α^{\text{mag.}}$, for each accuracy setting. The quantity $y$ can be considered as the percentage error on the estimate of the second derivative $F_{w_0 w_a}(x)$ that comes from random numerical noise or the non-Gaussianity of the likelihood, that is, from the kind of errors that can be controlled by an adequate step size. (Of course, $y$ does not include contributions from some possible systematic
<table><caption>**Table B.2.** Fiducial values and MCMC marginalised errors for all free parameters in the spectroscopic probe.</caption><thead><tr><th rowspan="2">parameter</th><th rowspan="2">fiducial value</th><th colspan="2">σ<sup>mag.</sup><sub>α</sub></th></tr><tr><th>pessimistic</th><th>optimistic</th></tr></thead><tbody><tr><td>Ω<sub>b,0</sub></td><td>0.05</td><td>2.0 × 10<sup>-3</sup></td><td>1.9 × 10<sup>-3</sup></td></tr><tr><td>Ω<sub>m,0</sub></td><td>0.32</td><td>1.1 × 10<sup>-2</sup></td><td>9.5 × 10<sup>-3</sup></td></tr><tr><td>h</td><td>0.67</td><td>3.4 × 10<sup>-3</sup></td><td>2.9 × 10<sup>-3</sup></td></tr><tr><td>n<sub>s</sub></td><td>0.96</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>σ<sub>8</sub></td><td>0.815584</td><td>1.2 × 10<sup>-2</sup></td><td>1.1 × 10<sup>-2</sup></td></tr><tr><td>w<sub>0</sub></td><td>-1</td><td>9.6 × 10<sup>-2</sup></td><td>8.7 × 10<sup>-2</sup></td></tr><tr><td>w<sub>a</sub></td><td>0</td><td>3.3 × 10<sup>-1</sup></td><td>2.8 × 10<sup>-1</sup></td></tr><tr><td>P<sub>S1</sub></td><td>0</td><td>35</td><td>19</td></tr><tr><td>P<sub>S2</sub></td><td>0</td><td>34</td><td>19</td></tr><tr><td>P<sub>S3</sub></td><td>0</td><td>36</td><td>20</td></tr><tr><td>P<sub>S4</sub></td><td>0</td><td>36</td><td>22</td></tr><tr><td>ln[b<sub>1</sub>σ<sub>8</sub>(z<sub>1</sub>)]</td><td>-0.3256</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>ln[b<sub>2</sub>σ<sub>8</sub>(z<sub>2</sub>)]</td><td>-0.3160</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>ln[b<sub>3</sub>σ<sub>8</sub>(z<sub>3</sub>)]</td><td>-0.3117</td><td>1.4 × 10<sup>-2</sup></td><td>1.3 × 10<sup>-2</sup></td></tr><tr><td>ln[b<sub>4</sub>σ<sub>8</sub>(z<sub>4</sub>)]</td><td>-0.3203</td><td>1.3 × 10<sup>-2</sup></td><td>1.2 × 10<sup>-2</sup></td></tr></tbody></table>

If the precision of the EBS and of the likelihood code are sufficient, there should exist a range of intermediate step sizes such numerical noise is under control while $F_{ij}$ is nearly constant as a function of step sizes. This can be checked explicitly. For diagonal coefficients of the Fisher matrix, one can plot $F_{αα} = \partial_{\alpha}^2(-\ln \mathcal{L})$ as a function of the step $\Delta p_{\alpha}$. One should be able to see three regions: for too small $\Delta p_{\alpha}$, $F_{αα}$ should feature random fluctuations; For intermediate $\Delta p_{\alpha}$, it should remain flat; For too large $\Delta p_{\alpha}$, it should either raise or decrease, depending on the sign of higher order corrections. For non-diagonal coefficients one may plot $F_{αβ}$ as a two-dimensional function of $(\Delta p_{\alpha}, \Delta p_{\beta})$, and draw similar conclusions.

After performing such tests, one can choose some arbitrary step sizes provided that they lay within the intermediate region. These tests also allow us to check the accuracy of the Einstein-Boltzmann and likelihood codes. If both codes are accurate enough for the purpose of computing the Fisher matrix, there exist a wide range of intermediate step sizes for each parameter. If one of the codes is not sufficiently accurate, there is no intermediate region, that is, derivative curves show no transition between the unstable region and the non-Gaussian region.

Since doing all these tests can be very time-consuming, we do not want to perform them extensively before each new calculation of a Fisher matrix. In this work, we adopt a pragmatic approach:

1. We first compute the marginalised errors on each parameter $p_{\alpha}$, $\sigma_{\alpha}^{\text{mag.}}$, using either CosmicFish, or MP/MCMC runs, or preliminary runs of MP/Fisher – this makes no difference. We set these $\sigma_{\alpha}^{\text{mag.}}$'s as reference values with respect to which we can calibrate our step sizes. Our values of $\sigma_{\alpha}^{\text{mag.}}$ are listed in the last two columns of Tables B.1 and B.2.

2. We compute a few diagonal and non-diagonal Fisher matrix elements $F_{\alpha\beta}$ with the step sizes $(\Delta p_{\alpha} = x \sigma_{\alpha}^{\text{mag.}}, \Delta p_{\beta} = x \sigma_{\beta}^{\text{mag.}})$ for various values of $x$ (typically in the range $0.01 < x < 1$) and we plot the curves $F_{\alpha\beta}(x)$.

3. We check that there exist an intermediate range of values of $x$ such that the curves are stable and flat. If not, we push the accuracy settings of the codes and we start the test again. If yes, we choose an arbitrary value of $x$ sitting comfortably within the intermediate region.

4. Once this test has been done once for each probe, we can make general recommendations to use a given accuracy in the codes and to set correctly the order of magnitude of the steps relatively to the marginalised errors.

5. Then, there is no need to repeat this test again and again. The user can trust the fact that with such recommendations, the Fisher matrix is accurate and stable against small variations of the step sizes. At most, as a cross-check, the user can try once to increase or decrease all step sizes (for instance, by ~30%), recompute the Fisher matrix, and verify that it remains stable.

We have performed such tests for each probe and for a few matrix elements $F_{\alpha\beta}$. We focused particularly on the non-diagonal element $F_{w_0 w_a}$, which is among the most difficult ones to compute accurately given the strong correlation between $w_0$ and $w_a$.

For each probe, we have computed the function $F_{w_0 w_a}(x)$ for 40 values of $x$ ranging from 0.025 to 1 with a spacing $\Delta x = 0.025$, while using CLASS with either the default-precision (DP) or high-precision (HP) settings defined in Appendix A.5. Once the value of $x$ has been set, we multiply it with the marginalised errors of Tables B.1 and B.2 to get our actual step sizes (these errors are derived from our MCMC runs, but we could have indifferently taken some marginalised errors from CosmicFish). For sufficiently large values of $x$ the points lay on a parabola ($F_{w_0 w_a}(x) \propto x^2$) that corresponds to the leading-order deviation from a Gaussian likelihood (since an exact Gaussian likelihood would give $F_{w_0 w_a}(x) = \text{constant}$). This happens typically for $x \ge 0.1$ with HP or above a larger threshold with DP. We then infer the asymptotic value $F_{w_0 w_a}^{\text{fit}}(0)$ from a parabolic fit to the set of points computed with high-precision settings in the range $0.1 \le x \le 1$. Finally, in Fig. B.1, we show the quantity

$$y \equiv 100 \left( \frac{F_{w_0 w_a}(x)}{F_{w_0 w_a}^{\text{fit}}(0)} - 1 \right) \qquad (\text{B.1})$$

as a function of the step-size-to-error ratio $x = \Delta p_{\alpha}/\sigma_{\alpha}^{\text{mag.}}$, for each accuracy setting. The quantity $y$ can be considered as the percentage error on the estimate of the second derivative $F_{w_0 w_a}(x)$ that comes from random numerical noise or the non-Gaussianity of the likelihood, that is, from the kind of errors that can be controlled by an adequate step size. (Of course, $y$ does not include contributions from some possible systematic
errors in the EBS or in the likelihood code, but we can estimate those errors independently from the CAMB-versus-CLASS and CosmicFish-versus-MontePython comparison of Sect. 4.) We computed $y(x)$ in the range $0.025 \le x \le 1$, but in Fig. B.1 we only show the range $0.025 \le x \le 0.4$ which is the most interesting (for larger $x$, we obtain a nearly perfect parabola).

<figure><img src="image_18.png" /><figcaption>**Fig. B.1.** Percentage error on the estimate of the second derivative $F_{w_0 w_a}(x)$ as a function of the step-size-to-marginalised-error ratio $x$, for 15 values in the range $0.025 \le x \le 0.4$ and each of the two probes (top: photometric and bottom: spectroscopic) and case (left: pessimistic and right: optimistic). In each panel, we show the results from CLASS with default-precision (DP) or high-precision (HP) settings. The black line is a parabolic fit to the HP points.</figcaption></figure>

For the photometric survey Fig. B.1 shows that, with DP, the points feature random fluctuations below $x < 0.2$. Indeed, when computing the Fisher matrix, we get unstable results with DP and such small step sizes (for instance, the inverse Fisher matrix is not always positive definite and the marginalised errors fluctuate a lot with the step size). The solution consists in switching to HP: then, the points follow smoothly the parabola down to $x \sim 0.1$ and even lower. Additionally, we see that non-Gaussian corrections are small: even at $x = 0.4$ they affect $F_{w_0 w_a}$ by only 0.1% (resp. 0.04%) in the pessimistic (resp. optimistic) case. As expected, the optimistic case features a more Gaussian likelihood (thanks to its enhanced constraining power). Our overall recommendation for the photometric survey is to use HP settings with an $x$ roughly in the range [0.1, 0.5], although it would also be possible to get good result while sticking to DP with $x$ roughly in the range [0.3, 0.5]. We did various tests to check explicitly that with such recommendations, we always get stable predictions for all un marginalised and marginalised errors. However, in the result sections, we always used HP and $x = 0.1$. The absolute step sizes $\Delta p_\alpha$ for the pessimistic and optimistic cases are thus given by the last two columns of Table B.2 divided by 10.

For the spectroscopic survey Fig. B.1 shows that with either DP or HP the points are smoothly distributed and follow a parabola for any $x \ge 0.05$. The non-Gaussianity is much stronger in this case: with $x = 0.4$ the error on $F_{w_0 w_a}$ reaches 1% (resp. 0.5%) in the pessimistic (resp. optimistic) case. Thus one should restrict to $x < 0.1$ in order to keep the non-Gaussian contamination below approximately 0.1%. For $x$ in the range [0.05, 0.1], the DP and HP points are always following a smooth parabola, and indeed we checked that the Fisher matrix and errors are

always stable in this range. However, the results obtained with HP are more correct because the physical effects of the parameters are captured with higher accuracy. In Fig. B.1 this appears in the form of an overall shift of $F_{w_0 w_a}$ by approximately -0.1% when sticking to DP. We observed similar shifts in other elements of the Fisher matrix. Instead, when further increasing precision beyond our HP settings, we checked that the results remain stable. Between DP and HP, the (un)marginalised Fisher errors only move by one or two percent, but for better accuracy we recommend using HP with $x$ in the range [0.05, 0.1]. In the result sections we always used HP and $x = 0.05$. The absolute step sizes $\Delta p_\alpha$ for the pessimistic and optimistic cases are then equal to the last two columns of Table B.2 divided by 20.
errors in the EBS or in the likelihood code, but we can estimate those errors independently from the CAMB-versus-CLASS and CosmicFish-versus-MontePython comparison of Sect. 4.) We computed $y(x)$ in the range $0.025 \le x \le 1$, but in Fig. B.1 we only show the range $0.025 \le x \le 0.4$ which is the most interesting (for larger $x$, we obtain a nearly perfect parabola).

<figure><img src="image_19.png" /><figcaption>**Fig. B.1.** Percentage error on the estimate of the second derivative $F_{w_0 w_a}(x)$ as a function of the step-size-to-marginalised-error ratio $x$, for 15 values in the range $0.025 \le x \le 0.4$ and each of the two probes (top: photometric and bottom: spectroscopic) and case (left: pessimistic and right: optimistic). In each panel, we show the results from CLASS with default-precision (DP) or high-precision (HP) settings. The black line is a parabolic fit to the HP points.</figcaption></figure>

For the photometric survey Fig. B.1 shows that, with DP, the points feature random fluctuations below $x < 0.2$. Indeed, when computing the Fisher matrix, we get unstable results with DP and such small step sizes (for instance, the inverse Fisher matrix is not always positive definite and the marginalised errors fluctuate a lot with the step size). The solution consists in switching to HP: then, the points follow smoothly the parabola down to $x \sim 0.1$ and even lower. Additionally, we see that non-Gaussian corrections are small: even at $x = 0.4$ they affect $F_{w_0 w_a}$ by only 0.1% (resp. 0.04%) in the pessimistic (resp. optimistic) case. As expected, the optimistic case features a more Gaussian likelihood (thanks to its enhanced constraining power). Our overall recommendation for the photometric survey is to use HP settings with an $x$ roughly in the range [0.1, 0.5], although it would also be possible to get good result while sticking to DP with $x$ roughly in the range [0.3, 0.5]. We did various tests to check explicitly that with such recommendations, we always get stable predictions for all un marginalised and marginalised errors. However, in the result sections, we always used HP and $x = 0.1$. The absolute step sizes $\Delta p_\alpha$ for the pessimistic and optimistic cases are thus given by the last two columns of Table B.2 divided by 10.

For the spectroscopic survey Fig. B.1 shows that with either DP or HP the points are smoothly distributed and follow a parabola for any $x \ge 0.05$. The non-Gaussianity is much stronger in this case: with $x = 0.4$ the error on $F_{w_0 w_a}$ reaches 1% (resp. 0.5%) in the pessimistic (resp. optimistic) case. Thus one should restrict to $x < 0.1$ in order to keep the non-Gaussian contamination below approximately 0.1%. For $x$ in the range [0.05, 0.1], the DP and HP points are always following a smooth parabola, and indeed we checked that the Fisher matrix and errors are

always stable in this range. However, the results obtained with HP are more correct because the physical effects of the parameters are captured with higher accuracy. In Fig. B.1 this appears in the form of an overall shift of $F_{w_0 w_a}$ by approximately -0.1% when sticking to DP. We observed similar shifts in other elements of the Fisher matrix. Instead, when further increasing precision beyond our HP settings, we checked that the results remain stable. Between DP and HP, the (un)marginalised Fisher errors only move by one or two percent, but for better accuracy we recommend using HP with $x$ in the range [0.05, 0.1]. In the result sections we always used HP and $x = 0.05$. The absolute step sizes $\Delta p_\alpha$ for the pessimistic and optimistic cases are then equal to the last two columns of Table B.2 divided by 20.
# Appendix C: Contour plots for nuisance parameters

## Appendix C.1. Photometric survey with pessimistic settings

<figure><img src="image_19.png" /><figcaption>**Fig. C.1.** For the photometric survey with pessimistic settings, comparison of 1D posterior and 2D contours (for 68% and 95% confidence level) from different methods: MP/MCMC (grey lines/contours), MP/Fisher (orange lines), CF/int/CLASS (blue lines). We only show here the nuisance parameters. The triangle plot for cosmological parameters was shown in the main text. Plotted using *GetDist*.</figcaption></figure>
# Appendix C: Contour plots for nuisance parameters

## Appendix C.1. Photometric survey with pessimistic settings

<figure><img src="image_20.png" /><figcaption>**Fig. C.1.** For the photometric survey with pessimistic settings, comparison of 1D posterior and 2D contours (for 68% and 95% confidence level) from different methods: MP/MCMC (grey lines/contours), MP/Fisher (orange lines), CF/int/CLASS (blue lines). We only show here the nuisance parameters. The triangle plot for cosmological parameters was shown in the main text. Plotted using *GetDist*.</figcaption></figure>
<figure><img src="image_20.png" /><figcaption>**Fig. C.2.** Same as Fig. C.1 for the correlation between cosmological and nuisance parameters.</figcaption></figure>

*Appendix C.2. Spectroscopic survey with optimistic and pessimistic settings*
<figure><img src="image_21.png" /><figcaption>**Fig. C.2.** Same as Fig. C.1 for the correlation between cosmological and nuisance parameters.</figcaption></figure>

Appendix C.2. Spectroscopic survey with optimistic and pessimistic settings
<figure><img src="image_21.png" /><figcaption>**Fig. C.3.** Same as Fig. C.1 for the nuisance parameters of the spectroscopic survey with pessimistic settings. For illustration purposes, we have labelled the parameters ln[$b_i\sigma_8(z_1)$] as ln[$bs8_i$].</figcaption></figure>
<figure><img src="image_22.png" /><figcaption>**Fig. C.3.** Same as Fig. C.1 for the nuisance parameters of the spectroscopic survey with pessimistic settings. For illustration purposes, we have labelled the parameters ln[$b_i\sigma_8(z_1)$] as ln[$bs8_i$].</figcaption></figure>
<figure><img src="image_22.png" /><figcaption>**Fig. C.4.** Same as Fig. C.3 for the correlation between cosmological and nuisance parameters.</figcaption></figure>
<figure><img src="image_23.png" /><figcaption>**Fig. C.4.** Same as Fig. C.3 for the correlation between cosmological and nuisance parameters.</figcaption></figure>
Appendix D: Contour plots for combined probes with pessimistic settings

<figure><img src="image_23.png" /><figcaption>**Fig. D.1.** For the individual and combined photometric and spectroscopic surveys with pessimistic settings, 1D posterior and 2D contours on cosmological parameters from CF/int/CLASS (dotted lines) and MP/Fisher (solid lines). Plotted using GetDist.</figcaption></figure>
Appendix D: Contour plots for combined probes with pessimistic settings

<figure><img src="image_24.png" /><figcaption>**Fig. D.1.** For the individual and combined photometric and spectroscopic surveys with pessimistic settings, 1D posterior and 2D contours on cosmological parameters from CF/int/CLASS (dotted lines) and MP/Fisher (solid lines). Plotted using GetDist.</figcaption></figure>