Class CarbonDatingConverter

java.lang.Object
org.episteme.social.history.CarbonDatingConverter

public final class CarbonDatingConverter extends Object
Utilities for radiocarbon (C-14) dating calculations and calibration. Translates between radiocarbon ages (Years BP) and calendar dates.
Since:
1.0
Version:
1.1
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final double
    Decay constant λ = ln(2) / t½ based on Libby half-life.
    static final double
    Conventional Libby C-14 half-life in years (used for reporting raw dates).
    static final double
    True physical C-14 half-life in years (Cambridge half-life).
  • Method Summary

    Modifier and Type
    Method
    Description
    static Real
    calculateAge(Real remainingFraction)
    Calculates the radiocarbon age from the remaining C-14 fraction.
    static Real
    Estimates the maximum dateable age based on a detection limit (approx. 1% remaining C-14).
    static Real
    remainingFraction(Real ageYearsBP)
    Calculates the remaining C-14 fraction for a given age.
    toCalendarDate(double radiocarbonYearsBP)
    Converts a radiocarbon age (BP = Before Present, where Present is 1950 CE) to a calendar date estimate using a simplified linear model.
    static double
    toRadiocarbonBP(int calendarYear)
    Converts a calendar year to its radiocarbon age BP equivalent (1950 reference).

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • HALF_LIFE_YEARS

      public static final double HALF_LIFE_YEARS
      Conventional Libby C-14 half-life in years (used for reporting raw dates).
      See Also:
    • TRUE_HALF_LIFE_YEARS

      public static final double TRUE_HALF_LIFE_YEARS
      True physical C-14 half-life in years (Cambridge half-life).
      See Also:
    • DECAY_CONSTANT

      public static final double DECAY_CONSTANT
      Decay constant λ = ln(2) / t½ based on Libby half-life.
  • Method Details

    • toCalendarDate

      public static TimeCoordinate toCalendarDate(double radiocarbonYearsBP)
      Converts a radiocarbon age (BP = Before Present, where Present is 1950 CE) to a calendar date estimate using a simplified linear model.
      Parameters:
      radiocarbonYearsBP - radiocarbon age in years BP
      Returns:
      estimated calendar date with calculated uncertainty as a TimeCoordinate
    • calculateAge

      public static Real calculateAge(Real remainingFraction)
      Calculates the radiocarbon age from the remaining C-14 fraction. Formula: t = -ln(N/N₀) / λ
      Parameters:
      remainingFraction - the fraction of original C-14 remaining (0.0 - 1.0)
      Returns:
      age in radiocarbon years BP as a Real number
      Throws:
      NullPointerException - if remainingFraction is null
    • remainingFraction

      public static Real remainingFraction(Real ageYearsBP)
      Calculates the remaining C-14 fraction for a given age. Formula: N/N₀ = e^(-λt)
      Parameters:
      ageYearsBP - the age in radiocarbon years BP
      Returns:
      remaining fraction (0.0 - 1.0) as a Real number
      Throws:
      NullPointerException - if ageYearsBP is null
    • maximumDateableAge

      public static Real maximumDateableAge()
      Estimates the maximum dateable age based on a detection limit (approx. 1% remaining C-14).
      Returns:
      maximum age in years as a Real number
    • toRadiocarbonBP

      public static double toRadiocarbonBP(int calendarYear)
      Converts a calendar year to its radiocarbon age BP equivalent (1950 reference).
      Parameters:
      calendarYear - the calendar year (CE)
      Returns:
      radiocarbon years BP