Comments (2)
Sounds excellent! Do we need separate Second
and SecondMixed
entries for the cache specifically? Feels like we could just use the SecondMixed
variant for that.
from feos.
The cache stores derivatives as HashMap<PartialDerivative, f64>
, so the Second
variant is a possible key. But we could ignore that when filling the map, i.e. we can write
fn get_or_insert_with_d2_64<F: FnOnce() -> Dual2_64>(
&mut self,
derivative: Derivative,
f: F,
) -> f64 {
if let Some(&value) = self.map.get(&PartialDerivative::SecondMixed(derivative, derivative)) {
self.hit += 1;
value
} else {
self.miss += 1;
let value = f();
self.map.insert(PartialDerivative::Zeroth, value.re);
self.map
.insert(PartialDerivative::First(derivative), value.v1[0]);
self.map
.insert(PartialDerivative::SecondMixed(derivative, derivative), value.v2[0]);
value.v2[0]
}
}
This just uses SecondMixed
and would lead to a cache hit in case one computes the second derivative using the less efficient HyperDual64
.
from feos.
Related Issues (20)
- Missing argument in
- Citations HOT 1
- Access to I&EC Paper HOT 4
- C/C++ interface HOT 2
- More general association schemes HOT 1
- bug in the peng robinson helmholtz implementation HOT 1
- Association schemes HOT 2
- Theory guide: fundamental measure theory
- Theory guide: association
- The specific heat capacity of an ideal gas HOT 5
- Can I use this package to calculate the critical points of binary mixture? HOT 12
- Performance improvements
- Phase equilibria in pores HOT 1
- Example on how to optimize parameters (m, sigma, epsilon_k) of PC-SAFT HOT 2
- Allow specification of phase in `DataSet` for dynamic properties for states that are generated for T,p HOT 1
- Check gc_pcsaft_functional notebook
- Non integer number of segments for the homosegmented GC-PC-SAFT HOT 2
- Helping bubble points and dew points at given pressure to converge HOT 2
- PC-SAFT extensions on README
- How to obtain the pressure of dispersive term and that of repulsive term HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from feos.