module OrdinaryDiffEqHighOrderRK

import OrdinaryDiffEqCore: qmax_default, qmin_default, beta2_default,
    beta1_default,
    explicit_rk_docstring, OrdinaryDiffEqAdaptiveAlgorithm,
    trivial_limiter!,
    _ode_addsteps!, @cache, OrdinaryDiffEqMutableCache,
    constvalue,
    alg_cache, perform_step!,
    OrdinaryDiffEqConstantCache,
    CompiledFloats,
    get_fsalfirstlast,
    unwrap_alg, _ode_interpolant, _ode_interpolant!,
    DerivativeOrderNotPossibleError, isdp8
using FastBroadcast: Serial
import MuladdMacro: @muladd
import FastBroadcast: @..
import RecursiveArrayTools: recursivefill!, copyat_or_push!
import DiffEqBase: @tight_loop_macros, calculate_residuals, calculate_residuals!,
    initialize!
import SciMLBase: alg_order, full_cache
import OrdinaryDiffEqCore

using Reexport
@reexport using SciMLBase

include("algorithms.jl")
include("alg_utils.jl")
include("high_order_rk_caches.jl")
include("high_order_rk_tableaus.jl")
include("interp_func.jl")
include("interpolants.jl")
include("high_order_rk_addsteps.jl")
include("high_order_rk_perform_step.jl")

export TanYam7, DP8, PFRK87, TsitPap8

end
