load("@fbsource//tools/build_defs/dirsync:fb_dirsync_cpp_library.bzl", "fb_dirsync_cpp_library")

oncall("fbcode_entropy_wardens_folly")

fb_dirsync_cpp_library(
    name = "float_control",
    headers = ["FloatControl.h"],
    use_raw_headers = True,
)

fb_dirsync_cpp_library(
    name = "kahan_summation",
    headers = ["KahanSummation.h"],
    use_raw_headers = True,
    exported_deps = [
        "//folly/lang:hint",
        "//folly/math:float_control",
    ],
)


fb_dirsync_cpp_library(
    name = "accurate_summation",
    headers = ["AccurateSummation.h"],
    use_raw_headers = True,
    exported_deps = [
        "//folly/math:kahan_summation",
    ],
)

fb_dirsync_cpp_library(
    name = "reproducible_accumulator",
    headers = ["ReproducibleAccumulator.h"],
    use_raw_headers = True,
    exported_deps = [
        "fbsource//third-party/fmt:fmt",
        "//folly:constexpr_math",
    ],
)
