Essentially, the [sdf](https://github.com/tesera/gypsy/blob/%2332/address-testing-findings/gypsy/stand_density_factor.py) functions solve the desntity functions for SDF given the observed age, site index etc **if we use a function to generate the density functions such that they are only variable in SDF, a scipy solver can be used** this reduces our maintenance overhead and probably gives a speed improvement This is likely also true for the [basal area correction factor](https://github.com/tesera/gypsy/blob/%2332/address-testing-findings/gypsy/basal_area_factor.py) functions of which the aw function is currently the bottleneck in gypsy