Comments (2)
What about the following? Bear in mind I haven't actually tried it, but I believe it should work, barring any details I haven't considered.
let xTPx = x.dot(&(P * &x));
let g = P * x / (lambda + xTPx);
This is not completely optimal, because to compute P * &x
, rulinalg
effectively clones the vector x
. It is possible to compute the quadratic form by directly computing the scalar quantity, without needing to store an additional vector. However, unless this extra allocation is demonstratively a problem in your application you probably don't need to care.
Note also that EDIT: Didn't think this one through. It cannot be computed in-place, so a vector will always be allocated.P * x
will be computed in-place (I think? It should, at least), but then of course you wouldn't be able to use x
in subsequent computations, which is why we must compute P * &x
instead.
Hope this helps! Let me know if it's not what you're looking for :-)
from rulinalg.
@bright-star: I'm closing this issue because I don't see anything more we should do here. Please let me know if I misunderstand and that there is more that we should do with respect to this issue!
from rulinalg.
Related Issues (20)
- Make `Matrix::from_fn` row-major
- Using assert_*_equal macros in all tests HOT 1
- SVD goes in an infinite loop for certain matrices HOT 2
- Matrix debug info is incorrect on docs homepage? HOT 2
- Computation of numerically stable matrix operations HOT 3
- Add serde support HOT 1
- Eigenvalues goes into infinite loop for certain matrices HOT 8
- Document that Cholesky only uses the lower triangular part HOT 1
- Variance and mean could be calculated in a better way HOT 1
- Adapt matrix factorizations from nalgebra? HOT 5
- SVD algorithm will segfault if matrix has 0 rows or 0 columns
- 'Matrix row counts not equal.' should give matrix dimensions
- Multidimensional tensors
- Hosted documentation out-of-date
- I want to help HOT 4
- Right-multiplication by permutation matrix is inconsistent with representation
- Matrix Operations on Complex Numbers
- API soundness issue in `raw_slice` and `raw_slice_mut` HOT 1
- [Question] Will sparse matrices be supported?
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 rulinalg.