"""Math benchmarks: gsm8k, aime24/25/26, hmmt26, imo_answerbench, competition_math.""" from ..recipe import EvalRecipe, register_eval MATH_EXTRACT = ['math_boxed', 'answer_phrase', 'last_number'] MATH_SCORE = {'acc': 'math_equal'} @register_eval('gsm8k') def gsm8k(): return EvalRecipe( name='gsm8k', extract=['math_boxed', 'gsm8k_hash', 'answer_phrase', 'last_number'], scorers={'acc': {'name': 'math_equal', 'sympy': False}}, # integer answers: no sympy needed description='Grade-school math; #### and boxed markers, numeric compare.', ) def _math_comp(name: str, desc: str) -> EvalRecipe: return EvalRecipe(name=name, extract=MATH_EXTRACT, scorers=MATH_SCORE, description=desc) @register_eval('aime24') def aime24(): return _math_comp('aime24', 'AIME 2024; boxed extraction + sympy equivalence.') @register_eval('aime25') def aime25(): return _math_comp('aime25', 'AIME 2025; boxed extraction + sympy equivalence.') @register_eval('aime26') def aime26(): return _math_comp('aime26', 'AIME 2026; boxed extraction + sympy equivalence.') @register_eval('hmmt26') def hmmt26(): return _math_comp('hmmt26', 'HMMT Feb 2026; boxed extraction + sympy equivalence.') @register_eval('imo_answerbench') def imo_answerbench(): return _math_comp('imo_answerbench', 'IMO AnswerBench; boxed extraction + sympy equivalence.') @register_eval('competition_math') def competition_math(): return _math_comp('competition_math', 'Hendrycks MATH; boxed + sympy (PRM800K grader).')