Development-methodology

Development methodology for "Math::NIntegrate"

Introduction

This document outlines the development methodology for the Raku package "Math::NIntegrate".

Motivation

In order to better understand some of the methodological points is helpful to list a few motivational reasons for how the decision to develop "Math::NIntegrate" was made.

TBF...

Methodology

Done by human mind (or "manually")

  • The Object-Oriented Design (OOP) of numerical integration framework

  • The complete dynamics of the interaction between regions, rules, and variable transformers

  • The method parsing grammar

    • The grammar for parsing the method option has several unique properties

    • A similar grammar in BNF was originally developed for WL's NIntegrate

    • Framework's grammar is written to be general and executable by Raku

    • It handles several different style of method specification: JSON-strings, WL-code-string, Raku data structures

    • Tests fo"Sentences" par

Done via LLM / AI-agent support

  • Many/most of the integration rules are well known for decades and centuries

    • Hence, LLMs / AI-agents know them well, and can reliably generate computational code for them

  • Reprogramming of Fortran codes from articles

    • Some numerical integration articles have corresponding Fortran code text files available on Web

  • Grammar actions

    • For a well written grammar with tests simple interpreters are easy to generate via LLMs / AI-agents

Math::NIntegrate v0.0.1

Raku package for numerical integration.

Authors

  • Anton Antonov

License

Artistic-2.0

Dependencies

Data::TransformersHash::Merge:ver<2.0.0>:api<2>LeftistHeapMath::Polynomial::Chebyshev

Test Dependencies

Provides

  • Math::NIntegrate
  • Math::NIntegrate::Builder
  • Math::NIntegrate::Codes
  • Math::NIntegrate::NumericalFunction
  • Math::NIntegrate::Processing::Actions::MethodSpec
  • Math::NIntegrate::Processing::Grammar
  • Math::NIntegrate::Region
  • Math::NIntegrate::Rule
  • Math::NIntegrate::Rule::Cartesian
  • Math::NIntegrate::Rule::ClenshawCurtis
  • Math::NIntegrate::Rule::GaussKronrod
  • Math::NIntegrate::Rule::General
  • Math::NIntegrate::Rule::MonteCarlo
  • Math::NIntegrate::Rule::MultiDimensional
  • Math::NIntegrate::Rule::NewtonCotes
  • Math::NIntegrate::Rule::Trapezoidal
  • Math::NIntegrate::Spec
  • Math::NIntegrate::Strategy
  • Math::NIntegrate::Strategy::AdaptiveMonteCarlo
  • Math::NIntegrate::Strategy::DoubleExponential
  • Math::NIntegrate::Strategy::GlobalAdaptive
  • Math::NIntegrate::Strategy::LocalAdaptive
  • Math::NIntegrate::Strategy::MonteCarlo
  • Math::NIntegrate::Strategy::Saturating
  • Math::NIntegrate::Strategy::Trapezoidal
  • Math::NIntegrate::Utilities
  • Math::NIntegrate::VariableTransformer
  • Math::NIntegrate::VariableTransformer::Affine
  • Math::NIntegrate::VariableTransformer::Composite
  • Math::NIntegrate::VariableTransformer::IMT
  • Math::NIntegrate::VariableTransformer::Infinity
  • Math::NIntegrate::VariableTransformer::Reverse

The Camelia image is copyright 2009 by Larry Wall. "Raku" is a trademark of the Yet Another Society. All rights reserved.

Built with Podlite — the markup and publishing tools behind this site.