-
-
Notifications
You must be signed in to change notification settings - Fork 52
Home
Yet Another Factoring Utility — an automated integer factorization tool.
YAFU combines modern factoring algorithms (trial division, Pollard rho, P-1, P+1, ECM, SIQS, GNFS, SNFS) into an adaptive pipeline that picks the right method for the input. It can be used as a one-shot command-line factorer or as an interactive environment (similar to PARI/GP or MATLAB) with its own expression language.
-
Building YAFU — How to compile YAFU using the unified
Makefile+config.mksystem, on Linux, MSYS2/MinGW-w64, and Windows (MSVC). - Continuous Integration — The GitHub Actions CI matrix, the released artifacts, and how to reproduce a CI build locally.
-
Configuration and Command-Line Options — Every option that can be set on the command line or in
yafu.ini, grouped by category. -
Functions Reference — Every callable function (
factor,siqs,nfs,ecm,pm1, etc.), with usage, description, and the options that affect it. - Expressions, Variables, and Reserved Words — The expression language used in interactive mode, scripts, and batchfiles.
-
Pretesting Plans and T-Levels — How
factor()decides how much ECM to do before NFS/SIQS, and what t-levels mean. - Tips, Examples, and Troubleshooting — Common usage patterns, examples, and where to ask for help.
- Benchmarks — SIQS benchmarks over common input sizes.
The easiest path is a pre-built Windows binary from the latest release — all builds are fully static, no DLLs required:
| File | Best for |
|---|---|
yafu-windows-generic.exe |
Any x86-64 CPU — widest compatibility |
yafu-windows-sse41.exe |
Intel Core 2 / Penryn (2008) and newer |
yafu-windows-avx2.exe |
Haswell (2013) and newer — recommended for most users |
yafu-windows-avx512.exe |
Skylake-X / Cascade Lake / Zen 4 (AVX-512) |
yafu-windows-avx512ifma.exe |
Ice Lake and newer — best ECM performance |
Run from a terminal:
# Factor an arbitrary integer
yafu "factor(2056802480868100646375721251575555494408897387375737955882170045672576386016591560879707933101909539325829251496440620798637813)"
# Or open the interactive prompt
yafu
>> factor(rsa(200))
For Linux, WSL, MSYS2/MinGW, or building from source on Windows, see Building YAFU.
| Item | Location |
|---|---|
| Source / releases | https://github.com/bbuhrow/yafu |
| Pre-built Windows binaries | https://github.com/bbuhrow/yafu/releases/latest |
| In-program help | type help or help <function> at the YAFU prompt |
| Config file |
yafu.ini next to the binary |
| Per-machine build config |
config.mk next to Makefile (copy from config.mk.example) |
| Community / support | mersenneforum.org node 58 |
Note on this wiki. The content here is derived from
yafu.ini,docfile.txt,Makefile,config.mk.example, and the README in the repository. Those files remain the source of truth; if anything in this wiki disagrees with them, the repo files win.