<GitHub>
[solvespace] Evil-Spirit commented on issue #131: @whitequark, we can limit number of constraints when FindWhichToRemoveToFixJacobian should be performed, if greater, we just report an error without concrete constraints. https://github.com/solvespace/solvespace/issues/131#issuecomment-266369372
<GitHub>
[solvespace] Evil-Spirit commented on issue #131: @whitequark, we can limit number of constraints when FindWhichToRemoveToFixJacobian should be performed, if greater, we just report an error without concrete constraints. https://github.com/solvespace/solvespace/issues/131#issuecomment-266369372
<GitHub>
[solvespace] Evil-Spirit commented on issue #131: @whitequark, Yes, we can be a little bit faster now (~3 times faster with the current example) if we just rewrite SolveBySubstitution for linear complexity instead of square. I actually done this for NotSolveSpace and this is huge speedup when we have a large amount of h,v,pc. The other two hot functions WriteJacobian and CalculateRand. The first can be performed once and used for many times, and th
<GitHub>
[solvespace] Evil-Spirit commented on issue #131: @whitequark, Yes, we can be a little bit faster now (~3 times faster with the current example) if we just rewrite SolveBySubstitution for linear complexity instead of square. I actually done this for NotSolveSpace and this is huge speedup when we have a large amount of h,v,pc. The other two hot functions WriteJacobian and CalculateRank. The first can be performed once and used for many times, and th
<GitHub>
[solvespace] whitequark commented on issue #132: Note that I don't reject this so far, l10n is a valid concern. What do other applications do? Is this why Excel uses `;` as a separator? Do other numeric processors just force you to input `,`? https://github.com/solvespace/solvespace/issues/132#issuecomment-266518789
<bofh_>
whitequark: is CalculateRank() used for any other purpose than checking if the matrix is full-rank?
<bofh_>
because, uh, the latter van be done much more efficiently than the former, especially if we're dealing with square matrices
<bofh_>
can*
<whitequark>
bofh_: it is not used for any other purpose
<whitequark>
like which? (I'm not sure if it's square)
<bofh_>
wait, I'm dumb,it's bounded by min(m,n) in the nonsquare case so rank-revealing QR & Gaussian Elimination to triangular form still work
<bofh_>
but before I get bogged down in micro-optimizations, uh
<whitequark>
(I know some of those words)
<bofh_>
is there any way to generate a Hessian from the constraints?
* whitequark
opens wikipedia
<bofh_>
i.e. the matrix of *second-order* partials
<whitequark>
I'm really not qualified to answer that
<whitequark>
ping @evil-spirit in that issue perhaps? he understands the math
<bofh_>
'cause if possible, using a quasi-Newton method like BFGS would (almost always) be a dramatic improvement
<whitequark>
I think the problem here isn't that solving is slow, it's that figuring out which constraints will fix the sketch if removed is O(n^4)
<bofh_>
lmao. so you can just generate all constraints, use that to define an objective function, solve that linear program once (use, like, glpk) & you get back a minimal set of constraints.
<bofh_>
I'll poke evil-spirit and write all this on github
<bofh_>
I actually have code that does all this that I wrote but it's all Fortran90
<whitequark>
wow, nice
<whitequark>
that would be great
<cr1901_modern>
It would be nice if F2C worked on F90 code
<whitequark>
glpk is gpl, right? that would be a problem
<whitequark>
i know we can use eigen
<bofh_>
you could just use my impl of primal-dual interior point (needs a sparse BLAS lib), or any of a zillion simplex impls on netlib
<bofh_>
cr1901_modern: I patched it to accept f90 line continuations & comments which are literally the only things I use not in f77 97% of the time
<bofh_>
actual f90 compat would be a ton more work
<bofh_>
...of course you should be able to get a Hessian here, just compute the gradient of the function & take the Jacobian of that.
<cr1901_modern>
bofh_: True... I have a (bad) f95 neural net impl that prob will never get ported b/c I used f95 features too heavily