#17220: Matrix_complex_ball_dense: Level 1 implementation (using acb_mat from
Arb)
-------------------------------------+-------------------------------------
Reporter: cheuberg | Owner:
Type: enhancement | Status: needs_info
Priority: major | Milestone: sage-6.10
Component: numerical | Resolution:
Keywords: arb, acb_mat, | Merged in:
complex balls, matrix | Reviewers: Marc Mezzarobba
Authors: Clemens Heuberger | Work issues:
Report Upstream: N/A | Commit:
Branch: | 0e3c4cec8d6a42ec0f84f9b6c14637c19c155bd4
u/cheuberg/acb_mat | Stopgaps:
Dependencies: #18546, #19063, |
#19152 |
-------------------------------------+-------------------------------------
Changes (by cheuberg):
* commit: 41263f09f24efbb2178bba50e35c8f17b959c11c =>
0e3c4cec8d6a42ec0f84f9b6c14637c19c155bd4
Comment:
Hello,
Replying to [comment:28 mmezzarobba]:
> So I had a look and added a few reviewer patches with minor changes.
Thank you. I added one more minor commit on top of it (changing the title
in the documentation for consistency with `real_arb` and `complex_arb`.
> Two questions:
> - are the functions `matrix_to_acb_mat` & co really useful?
I use them in #17222: there, the time critical part does not use the full
coercion model, but just a C array of `acb_mat_t`. Thus it is convenient
there to be able to convert a matrix of `CIF`s to an `acb_mat_t` directly
instead of having it converted by a call to `matrix(CBF, ...)` and then
copying the resulting `acb_mat_t`. The same in the converse direction.
I see three options:
- keeping it the way it is now
- removing these functions here and doing (minimal) overhead in #17222
when initializing the computations there by calling `matrix(CBF, ...)`
- rewriting #17222 to use complex balls instead of complex intervals
throughout (that was not an option in October 2014 when I wrote that code,
because complex balls were not yet really implemented).
> - your `__init__` deviates a little bit from the logic in
`Matrix_generic_dense.__init__`, so that for example the following no
longer works, is that intentional?
> {{{
> sage: Pol.<x> = QQ[]
> sage: pol = 1 + x + x^2
> sage: Mat = MatrixSpace(CBF, 3, 1)
> sage: Mat(pol)
> [1.000000000000000]
> [1.000000000000000]
> [1.000000000000000]
> }}}
This is a consequence of following advice on
[https://groups.google.com/d/msg/sage-devel/kZX_Rh_V5vE/uSH6-sTpP0wJ sage-
devel]. Indeed,
{{{
sage: Pol.<x> = ZZ[]
sage: pol = 1 + x + x^2
sage: Mat = MatrixSpace(ZZ, 3, 1)
sage: Mat(pol)
[1.000000000000000]
[1.000000000000000]
[1.000000000000000]
}}}
does not work, either. BTW, most but not all of the cython oddities you
fixed in your commits here have been fixed in the integer matrices in the
meantime, however, the `for i from 0 <= i < self._nrows` are still there.
----
New commits:
||[http://git.sagemath.org/sage.git/commit/?id=0e3c4cec8d6a42ec0f84f9b6c14637c19c155bd4
0e3c4ce]||{{{Trac #17220: Change title for documentation}}}||
--
Ticket URL: <http://trac.sagemath.org/ticket/17220#comment:31>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.