Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

121 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RootSolvers.jl Logo

RootSolvers.jl

A high-performance root solver package with GPU support and broadcasting across abstract types

RootSolvers.jl provides robust, efficient numerical methods for finding roots of nonlinear equations. It supports broadcasting across abstract types including GPU arrays and custom field types, making it ideal for high-performance computing applications in climate modeling, machine learning, and scientific computing.

Documentation stable dev
Version version
License license
Tests gha ci buildkite
Code Coverage codecov
Downloads Downloads

Features

  • Multiple Root-Finding Methods: Secant, Regula Falsi, Brent's method, Newton's method with automatic differentiation
  • GPU Support: Full GPU acceleration with CUDA.jl and other GPU array types
  • Broadcasting: Allows broadcasting over distributed arrays and custom field types
  • Dual Number Support: Compatible with automatic differentiation frameworks, allowing integration into differentiable models
  • Flexible Convergence Criteria: Multiple tolerance types for different applications
  • High-Performance: Optimized for large-scale parallel processing

Quick Example

using RootSolvers

# Simple scalar root finding
sol = find_zero(x -> x^2 - 4, SecantMethod(0.0, 3.0))

# Broadcasting over arrays
x0 = rand(100, 100)
x1 = rand(100, 100)
f(x) = x.^2 .- 2.0
sol = find_zero.(f, SecantMethod(x0, x1), CompactSolution())

Contributing

Contributors should follow the shared CliMA engineering standards in docs/dev-guides/, which cover architecture, performance, code quality, documentation, and workflows. These are vendored from CliMA/DeveloperGuides. The repo's AGENTS.md is a starting point for AI agents with repo-specific guidance.

Releases

Packages

Used by

Contributors

Languages