Skip to content

Opened by mistake, please disregard - #500

Closed
markomanka wants to merge 1 commit into
BioDynaMo:masterfrom
markomanka:rootfree/phase1
Closed

markomanka wants to merge 1 commit into
BioDynaMo:masterfrom
markomanka:rootfree/phase1

Conversation

@markomanka

@markomanka markomanka commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

No description provided.

- core/util/log.h: self-contained logger. Same output format as ROOT
  ("<Level> in <location>: message") and the same numeric levels
  (kLogPrint..kLogFatal equal ROOT's kPrint..kFatal), so verbosity settings
  keep their meaning. Thread-safe; flushes stdout before writing to stderr.
- core/util/math.h: kPi without TMath. NormalPdf and PoissonPdf replace
  ROOT::Math::normal_pdf and poisson_pdf (max relative difference 5.7e-14
  over the tested range). PoissonPdf returns 0 for x < 0, where the ROOT
  call converted a negative value to unsigned (undefined behaviour).
- substance_initializers.h, model_initializer.h, multi_simulation/experiment.h:
  use the new helpers and std::accumulate.
- neuroscience: five direct calls to ROOT's global Fatal() now use
  Log::Fatal(), which prints "Error in <...>" and exits with code 1
  instead of aborting.
- param/command_line_options.cc: verbosity drives Log::SetLevel and, while
  ROOT is still linked, gErrorIgnoreLevel for ROOT's own messages.
- CMake: option BDM_ANY_PYTHON accepts any Python >= 3.9 when ROOT does not
  come from the pinned prebuilt bundle (default OFF: current behaviour).

Verified against conda-forge ROOT 6.40.04 with GCC 15.3.0: all 61 library and
68 unit-test sources compile; log output is byte-identical to ROOT's.
Full link and test run: BioDynaMo CI.
@markomanka markomanka closed this Oct 26, 2026
@markomanka

Copy link
Copy Markdown
Contributor Author

Opened against the upstream repository by mistake, while testing changes in my fork. Please disregard; sorry for the noise.

@markomanka markomanka changed the title Remove ROOT from logging and math helpers (ROOT-free phase 1, part 1) Opened by mistake, please disregard Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant