fixed

Pure Haskell large fixed-width integers.
git clone git://git.ppad.tech/fixed.git
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2025-11-30 19:11test: initial montgomery skeletonsJared Tobin8+97-3
2025-11-30 13:55test: more wider casesJared Tobin2+52-1
2025-11-30 12:02lib: borrow handling fixesJared Tobin3+101-26
2025-11-30 11:21test: wider skeletonJared Tobin4+66-8
2025-11-30 11:14lib: consistent naming for overflowing additionJared Tobin5+57-46
2025-11-30 10:08lib: module headersJared Tobin3+26-0
2025-11-30 10:04montgomery: refactor to use limbJared Tobin2+260-377
2025-11-30 09:46wider: refactor to use limbJared Tobin2+150-135
2025-11-30 09:12test: remove unused importsJared Tobin1+0-2
2025-11-30 09:10test: basic wide testsJared Tobin3+50-1
2025-11-30 09:10wide: add boxed add_cJared Tobin1+21-1
2025-11-30 08:57limb: input mask on sub, return maskJared Tobin1+4-2
2025-11-30 08:27wide: friendlier show instanceJared Tobin1+1-2
2025-11-30 08:26wide: add num instanceJared Tobin1+11-0
2025-11-30 08:09wide: refactor to use limbJared Tobin1+34-79
2025-11-30 07:59test: limb testsJared Tobin2+147-32
2025-11-30 07:58limb: other comparison opsJared Tobin1+34-0
2025-11-30 07:05test: re-add skeletonJared Tobin3+67-0
2025-11-30 07:04meta: remove spurious inputsFromJared Tobin1+0-2
2025-11-30 06:59meta: remove old copy of generate_invJared Tobin1+0-51
2025-11-30 06:55lib: remove old Data.Word.Extended moduleJared Tobin1+0-953
2025-11-30 06:54wider: wip work on bit manipulationJared Tobin1+35-1
2025-11-30 06:52limb: module headerJared Tobin1+8-0
2025-11-30 06:41limb: even further refinementJared Tobin1+105-5
2025-11-30 06:14limb: more refinementJared Tobin1+63-10
2025-11-30 06:01limb: clean up substantiallyJared Tobin1+147-50
2025-11-29 04:48lib: ord for widerJared Tobin2+47-0
2025-11-29 03:48lib: fix montgomery signumsJared Tobin2+6-2
2025-11-24 16:02lib: basic Eq instance for WiderJared Tobin2+10-3
2025-11-23 16:06lib: mul for wider and basic Num instanceJared Tobin1+58-49
2025-11-23 13:46meta: expose an 'llvm' flagJared Tobin1+7-0
2025-11-23 13:42Revert "meta: add -fllvm flags everywhere"Jared Tobin1+3-3
2025-11-23 13:39meta: add -fllvm flags everywhereJared Tobin1+3-3
2025-11-23 12:13lib: comments re NOINLINEJared Tobin2+2-2
2025-11-23 12:07bench: weigh additional formatting fixesJared Tobin1+10-6
2025-11-23 12:06bench: weigh formatting fixesJared Tobin1+28-73
2025-11-23 12:02bench: formatting fixesJared Tobin1+28-57
2025-11-23 11:06lib: wider sqr# using square-and-redcJared Tobin4+137-32
2025-11-23 04:03bench: redc, retrJared Tobin1+24-26
2025-11-22 12:54lib: NOINLINE sqr# for nowJared Tobin2+2-2
2025-11-22 10:23lib: shr1-with-carry for widerJared Tobin1+24-0
2025-11-22 05:25lib: num instances for montgomeryJared Tobin2+18-0
2025-11-22 04:28lib: add montgomery zerosJared Tobin2+6-0
2025-11-22 04:01lib: show instances for montgomeryJared Tobin2+14-4
2025-11-22 03:41lib: formatting nitJared Tobin1+1-1
2025-11-22 03:37lib: add missing strictness, eq for montJared Tobin4+12-4
2025-11-22 03:33meta: benchmark noteJared Tobin1+9-0
2025-11-21 13:27lib: add 'decide' for ChoiceJared Tobin2+7-6
2025-11-21 13:13lib: constant-time equalityJared Tobin1+36-0
2025-11-21 13:12lib: remove old montgomery moduleJared Tobin2+2-346
2025-11-21 10:44lib: montgomery typeJared Tobin2+62-50
2025-11-21 10:13bench: montgomery benchmarksJared Tobin1+111-208
2025-11-21 09:37bench: weigh montgomeryJared Tobin1+98-139
2025-11-21 09:19bench: skeletonJared Tobin3+400-0
2025-11-21 09:17lib: montgomery inv fix for scalar domainJared Tobin3+41-9
2025-11-21 08:49lib: montgomery modular inverseJared Tobin5+1097-3
2025-11-18 10:57lib: specialized montgomery domainsJared Tobin3+699-0
2025-11-18 09:28meta: .gitignore updateJared Tobin1+5-0
2025-11-18 09:28meta: add llvm to build inputsJared Tobin1+5-2
2025-11-15 13:26lib: montgomery negationJared Tobin1+12-0
2025-11-15 11:03lib: montgomery addition, subtractionJared Tobin2+46-0
2025-11-15 10:32lib: formattingJared Tobin1+22-18
2025-11-15 04:21lib: commentaryJared Tobin2+3-2
2025-11-15 04:02lib: mul_inner# optimizationJared Tobin2+99-96
2025-11-15 03:45lib: wider add optimizationJared Tobin1+1-1
2025-11-15 03:41lib: wide add/mul optimizationJared Tobin1+3-3
2025-11-15 03:22lib: optimize mul_add_c#Jared Tobin1+7-17
2025-11-15 03:22meta: fix .ghci typoJared Tobin1+1-1
2025-11-15 02:19lib: montgomery multiplication refinementJared Tobin2+26-7
2025-11-14 12:18lib: montgomery multiplication first stabJared Tobin2+149-11
2025-11-02 15:26lib: clean up wide moduleJared Tobin3+48-30
2025-11-02 15:16lib: axe some old wide stuffJared Tobin2+20-137
2025-11-02 15:05lib: clean up wider moduleJared Tobin3+38-34
2025-11-02 13:43lib: radically simplify limb moduleJared Tobin1+42-136
2025-11-02 13:42lib: gut existing test, bench suitesJared Tobin8+1-694
2025-11-02 13:40lib: remove profile for the time beingJared Tobin2+0-49
2025-11-02 13:17lib: prune unused importsJared Tobin1+0-6
2025-11-02 13:16meta: .ghci pragmasJared Tobin1+2-0
2025-11-02 12:54lib: reorg will continue until morale improvesJared Tobin5+141-126
2025-11-02 04:58lib: fix translation artefactsJared Tobin1+13-11
2025-11-01 08:41lib: address misc formatting nitsJared Tobin3+11-5
2025-10-31 12:43lib: sub_mod_c# fixesJared Tobin2+14-17
2025-10-31 07:26lib: montgomery retrieval first stabJared Tobin2+125-12
2025-07-14 14:33lib: montgomery reduction initial stabJared Tobin6+215-8
2025-07-12 19:10lib: limb benchmarksJared Tobin5+54-26
2025-07-12 12:21lib: fix multi-word shift bugJared Tobin2+23-2
2025-07-12 11:50lib: more work on choice, limb, wideJared Tobin4+359-167
2025-07-10 13:04lib: axe word256 modJared Tobin3+4-377
2025-07-09 15:24test: quotrem2 reference checkJared Tobin1+25-0
2025-07-09 15:09lib: refining wide word stuffJared Tobin7+160-3
2025-07-09 14:46lib: add Data.Wide moduleJared Tobin3+307-4
2025-07-09 13:52lib: add Data.Choice moduleJared Tobin3+215-1
2025-06-30 18:33lib: add word256 moduleJared Tobin2+375-0
2025-06-30 18:25exec: neuter profile case for nowJared Tobin1+23-22
2025-02-07 13:47bench: separate low-level division util casesJared Tobin1+5-1
2025-02-07 13:45lib: remove unused functionsJared Tobin1+0-64
2025-02-07 13:27lib: commentaryJared Tobin1+39-26
2025-02-04 10:04lib: sub_mul#, add_to#Jared Tobin1+40-0
2025-02-04 07:51lib: quotrem, 256-bit by 64-bitJared Tobin1+12-0
2025-02-03 07:20bench: gut old stuffJared Tobin1+9-109
2025-02-03 07:19test: gut old stuffJared Tobin1+0-150
2025-02-03 07:19test: mul_512#Jared Tobin1+46-2
2025-02-03 07:06lib: mul_512#Jared Tobin1+28-0
2025-01-30 04:55meta: readme headerJared Tobin1+2-2
2025-01-29 18:52lib: prune old big word typesJared Tobin2+2-86
2025-01-29 18:47lib: further optimisationJared Tobin3+134-64
2025-01-29 16:57lib: wip optimization snapshot, <10ns div diffJared Tobin3+47-27
2025-01-29 16:06meta: readme perfJared Tobin2+65-77
2025-01-29 16:01bench: tweaksJared Tobin1+14-7
2025-01-29 15:46lib: div within 10-15ns of baselineJared Tobin2+51-1
2025-01-29 15:39lib: fix exportsJared Tobin1+87-89
2025-01-29 15:25lib: refactor working & passes testsJared Tobin1+8-6
2025-01-29 13:35lib: fix underallocationJared Tobin1+3-2
2025-01-29 13:21lib: working, but broken, refactoring snapshotJared Tobin1+93-73
2025-01-29 11:12src: profiling tweakJared Tobin2+28-19
2025-01-29 11:11lib: avoid unnecessary setPrimArray callsJared Tobin1+0-3
2025-01-28 17:06lib: yet another optimising wipJared Tobin4+254-307
2025-01-28 08:15lib: the quixotic vibes are thickJared Tobin4+167-126
2025-01-28 06:55lib: the unboxing will continueJared Tobin4+111-186
2025-01-28 06:21lib: extremely messy wip snapshotJared Tobin6+1025-629
2025-01-26 18:00Reapply "lib: switch to primarrays again"Jared Tobin5+242-722
2025-01-26 16:36meta: perf noteJared Tobin1+26-5
2025-01-26 16:39Revert "lib: switch to primarrays again"Jared Tobin5+722-242
2025-01-25 16:01Revert "meta: remove profiling executable"Jared Tobin2+37-0
2025-01-25 16:00lib: switch to primarrays againJared Tobin5+242-722
2025-01-25 09:39meta: wip noteJared Tobin1+2-1
2025-01-25 09:37meta: credsJared Tobin1+5-0
2025-01-25 09:35meta: fix cp error in readmeJared Tobin1+3-3
2025-01-25 09:34meta: readmeJared Tobin3+177-16
2025-01-25 09:15lib: basic documentationJared Tobin2+66-5
2025-01-25 08:57meta: remove profiling executableJared Tobin2+0-37
2025-01-25 08:56lib: general refinementJared Tobin6+180-114
2025-01-24 18:45lib: primitive residueJared Tobin2+0-6
2025-01-24 18:25lib: warningsJared Tobin1+8-11
2025-01-24 18:23lib: gut primitive stuffJared Tobin4+16-464
2025-01-24 17:52lib: unroll quotrem_by1_genJared Tobin2+97-20
2025-01-24 17:19bench: mod_pureJared Tobin1+17-9
2025-01-24 17:19lib: u sufficesJared Tobin1+3-3
2025-01-24 15:01lib: unroll add_bigJared Tobin1+113-16
2025-01-24 14:51lib: unroll sub_mulJared Tobin1+169-20
2025-01-24 12:59bench: quotrem_knuth and friendsJared Tobin3+51-7
2025-01-24 11:02lib: only need 256 bits for theseJared Tobin2+9-13
2025-01-24 10:52lib: do more work in fill functionsJared Tobin1+16-18
2025-01-24 10:48lib: unroll fill256Jared Tobin1+12-12
2025-01-24 10:44lib: unroll fill576Jared Tobin1+25-12
2025-01-24 10:33lib: unroll fill_remJared Tobin2+19-25
2025-01-24 09:49lib: test and bench casesJared Tobin6+66-24
2025-01-24 09:32lib: pure quotremJared Tobin2+139-95
2025-01-24 07:34lib: generalize divisorsJared Tobin1+32-7
2025-01-24 07:21lib: pure quotrem_knuthJared Tobin2+72-1
2025-01-24 06:55bench: quotrem_by1_genJared Tobin2+13-9
2025-01-24 06:42lib: pure quotrem_by1Jared Tobin3+42-10
2025-01-24 06:14lib: add_big, fix to add_toJared Tobin1+17-1
2025-01-24 06:03lib: sub_mulJared Tobin1+74-42
2025-01-24 05:24lib: pre-excavationJared Tobin1+84-8
2025-01-23 19:33src: update profilerJared Tobin1+4-7
2025-01-23 19:18lib: clean up remainder handlingJared Tobin2+48-54
2025-01-23 18:40lib: little endianJared Tobin1+2-2
2025-01-23 18:33lib: fix boundariesJared Tobin1+2-2
2025-01-23 18:22src: profiling executableJared Tobin7+96-48
2025-01-23 16:58bench: impure vs pureJared Tobin3+84-40
2025-01-23 16:58lib: pure variantJared Tobin1+44-27
2025-01-23 15:20lib: modJared Tobin3+75-10
2025-01-23 13:54lib: small div fixJared Tobin1+1-1
2025-01-23 12:03test: more casesJared Tobin1+94-4
2025-01-23 12:02lib: fix quotremJared Tobin1+5-12
2025-01-23 07:37test: ensure test primarrays have default 0 valsJared Tobin1+17-0
2025-01-23 07:24lib: misc bench and test additionsJared Tobin4+47-5
2025-01-23 06:43test: assertion for quotrem_2by1Jared Tobin1+7-0
2025-01-23 06:31test: bigger range for monotonic instanceJared Tobin1+7-6
2025-01-23 06:20lib: little-endianJared Tobin1+1-1
2025-01-23 06:19test: increase integer range for div testJared Tobin1+12-2
2025-01-23 06:04test: division testJared Tobin1+10-1
2025-01-23 06:04lib: divisionJared Tobin1+40-0
2025-01-23 05:34test: comparison testsJared Tobin1+29-1
2025-01-23 05:34lib: division preliminariesJared Tobin2+203-10
2025-01-22 23:48lib: add primitive depJared Tobin1+1-0
2025-01-22 18:50test: bitwise opsJared Tobin1+25-1
2025-01-22 18:41lib: bit operationsJared Tobin2+66-3
2025-01-22 17:57lib: s/W64Pair/Word128Jared Tobin2+15-14
2025-01-22 16:21bench: weightJared Tobin2+50-4
2025-01-22 13:01lib: quotrem_by1Jared Tobin2+22-13
2025-01-22 12:48lib: _2by1 functionsJared Tobin2+32-0
2025-01-22 12:22test: quot_rem_r unit testsJared Tobin2+25-5
2025-01-22 12:22lib: quot_rem_rJared Tobin1+46-0
2025-01-22 11:19test: better sub_mul case generatorJared Tobin1+7-7
2025-01-22 11:15lib: sub_mulJared Tobin2+51-7
2025-01-22 10:32lib: shorten data constructor nameJared Tobin3+73-75
2025-01-22 10:05bench: arithmetic benchmarksJared Tobin3+108-0
2025-01-22 09:32meta: s/fw/fixedJared Tobin3+47-47
2025-01-22 09:30test: mul_512Jared Tobin1+22-6
2025-01-22 09:29lib: mul_512 (mul on w256 without overflow)Jared Tobin1+65-2
2025-01-22 09:07test: passing mul_c, umul_hop, umul_stepJared Tobin1+37-3
2025-01-22 09:07lib: accurate mul_cJared Tobin1+16-20
2025-01-22 08:44test: arithmetic testsJared Tobin1+38-5
2025-01-22 08:24test: conversion propertiesJared Tobin1+7-3
2025-01-22 08:17flake: add ppad-nixpkgsJared Tobin2+29-2
2025-01-22 08:16test: skeletonJared Tobin2+51-0
2025-01-22 08:10lib: mulJared Tobin1+58-0
2025-01-22 08:10lib: addition, subtractionJared Tobin1+86-5
2025-01-22 06:21lib: initJared Tobin7+192-0