Skip to content

Commit

Permalink
correct readme
Browse files Browse the repository at this point in the history
  • Loading branch information
tobydriscoll committed Jul 7, 2020
1 parent f29d6e0 commit f9c5863
Showing 1 changed file with 32 additions and 12 deletions.
44 changes: 32 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,36 @@
# FundamentalsNumericalComputation.jl
# Fundamentals of Numerical Computation

These are Julia implementations the functions that are defined in the first edition of [*Fundamentals of Numerical Computation*](https://tobydriscoll.net/fnc) by Driscoll and Braun. They are mostly compatible with the original MATLAB functions, except that input and output formats have been changed to be compatible with major packages listed below.
These are source files used to generate the online text [*Fundamentals of Numerical Computation*](https://fncbook.github.io/fnc) by T. A. Driscoll and R. J. Braun.

The package does not export its own functions, but it does export the name `FNC` as a shorthand for the full package name. It does re-export the following:
## Installing locally

* LinearAlgebra
* Plots
* SparseArrays
* Polynomials
* NLsolve
* DifferentialEquations
* DataFrames
* Interpolations
Each chapter includes notebooks that were run with Julia 1.4. They should work with any later 1.x release as well (provided dependencies honor the standard versioning scheme). To get the book functions as well as all demos, first [install Julia](https://julialang.org/downloads/). Then execute

**This is work in progress**. There will be cosmetic changes as well as possible breaking changes in future versions. In particular, the functions from Chapters 7-12 have not yet been thoroughly reviewed and tested. No warranty for correctness is implied.
```julia
] add https://github.com/fncbook/fnc
```

After this, hit the backspace key to go back to the main Julia prompt. This process should only need to be done once per installation. In order to use the functions you must enter

```julia
using FundamentalsNumericalComputation
```

at the Julia prompt in each session of Julia. After this, all the text's functions can be accessed with the prefix `FNC`. E.g., `FNC.lufact`, `FNC.rk23`, etc.

### Startup speed

There are two sources of noticeable slowness:

1. Any `using` statement requires a compilation step whenever a package or its dependencies have been updated. As of July 2020, this can consume several minutes for `FNC` due mainly to its dependence on ['Plots'](http://docs.juliaplots.org/latest/) and [`DifferentialEquations`](https://docs.sciml.ai/latest/index.html). Even on subsequent invocations, `using` this package can take 10-30 seconds for loading.
2. The first plot created in a Julia session may take up to a minute, which is standard for `Plots`.

Both of these lag issues are well known to Julia developers and are the target of future improvements. In the meantime power users might investigate using [`PackageCompiler`](https://julialang.github.io/PackageCompiler.jl/dev/) to get vastly better performance on both issues.

## Tooling

The book was created using [jupyter-book](https://jupyterbook.org) and [VS Code](https://code.visualstudio.com/) with the [Julia extension](https://github.com/julia-vscode/julia-vscode). These tools are already excellent and continue to evolve rapidly.

## License

The content is licensed under CC Attribution-ShareAlike 4.0, while the code is under an MIT license. All material is copyrighted.

0 comments on commit f9c5863

Please sign in to comment.