2021-04-09 01:22:55 +0200 received badge ● Notable Question (source) 2021-04-09 01:22:54 +0200 received badge ● Popular Question (source) 2021-03-13 14:06:25 +0200 received badge ● Famous Question (source) 2020-10-06 17:45:02 +0200 received badge ● Notable Question (source) 2017-10-25 10:03:27 +0200 received badge ● Popular Question (source) 2017-05-09 23:58:52 +0200 received badge ● Popular Question (source) 2017-04-10 18:04:05 +0200 received badge ● Famous Question (source) 2017-03-10 09:22:04 +0200 received badge ● Notable Question (source) 2017-03-10 09:22:04 +0200 received badge ● Popular Question (source) 2016-08-01 10:03:43 +0200 received badge ● Notable Question (source) 2014-10-11 17:01:45 +0200 received badge ● Popular Question (source) 2014-06-29 03:15:38 +0200 marked best answer convert expression to QuadraticField I tried (in the Sage shell) K = QuadraticField(-3) a = K(sqrt(-3))  But that fails with a TypeError exception. What is the problem? I know that I can get the generator by K.gen() but I want to be able to convert expressions to K. 2013-06-10 09:52:03 +0200 marked best answer how to use variables (var) This is a known issue, see for example trac ticket 6862, and ask question 2287. What you can do is to use the assume function, as in the following: sage: t1,t2,t4 = var("t1 t2 t4") sage: assume(t2,'complex') sage: t2.conjugate().simplify() conjugate(t2) sage: t2.real().simplify() realpart(t2) sage: t2.imag().simplify() imagpart(t2)  2013-06-10 09:27:53 +0200 asked a question how to use variables (var) I thought they are complex by default. But even when I try to force the domain to be complex, I always get x.conjugate().simplify() == x. Why? See also below: sage: t1,t2,t4 = var("t1 t2 t4") sage: t2.conjugate().simplify() t2 sage: t1,t2,t4 = var("t1 t2 t4", domain="complex") sage: t2 t2 sage: t2.is_real() False sage: t2.conjugate().simplify() t2 sage: (t2.real()*2 - t2).simplify() t2 sage: t2.real().simplify() t2 sage: t2.imag().simplify() 0  2013-06-04 07:38:15 +0200 commented answer SIGILL in forked process [Here](http://stackoverflow.com/a/16878397/133374), I got some response from someone working at Apple. He says that using libBLAS in a forked process is not safe. I haven't really investigated yet. But it would mean that Sage is not safe to use in a forked process. 2013-06-03 13:27:39 +0200 commented answer SIGILL in forked process It only happens in the forked process. Matrix multiplications work fine otherwise. 2013-05-31 15:08:41 +0200 marked best answer run Python file from command line in Sage It is enough to add to sageruntest.py: from sage.all import * from sage.matrix.matrix2 import Matrix  Alternatively, the 2nd line (yours) is enough if you rename your file to sageruntest.sage (then it will be preparsed by Sage). 2013-05-31 09:25:44 +0200 asked a question run Python file from command line in Sage I'm trying to run some Python file with Sage. I can import the module just fine within the interactive Sage IPython shell. However, this very simple test fails: sage sageruntest.py  where sageruntest.py contains the single line: from sage.matrix.matrix2 import Matrix  It fails with: Traceback (most recent call last): File "sageruntest.py", line 1, in from sage.matrix.matrix2 import Matrix File "matrix2.pyx", line 1, in init sage.matrix.matrix2 (sage/matrix/matrix2.c:71259) File "matrix1.pyx", line 1, in init sage.matrix.matrix1 (sage/matrix/matrix1.c:13931) File "matrix0.pyx", line 32, in init sage.matrix.matrix0 (sage/matrix/matrix0.c:29567) File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/modules/free_module.py", line 163, in import free_module_element File "integer.pxd", line 9, in init sage.modules.free_module_element (sage/modules/free_module_element.c:30936) File "integer.pyx", line 178, in init sage.rings.integer (sage/rings/integer.c:38404) File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/rings/infinity.py", line 203, in import sage.rings.rational File "fast_arith.pxd", line 5, in init sage.rings.rational (sage/rings/rational.c:27749) File "fast_arith.pyx", line 51, in init sage.rings.fast_arith (sage/rings/fast_arith.c:8051) File "integer_ring.pyx", line 67, in init sage.rings.integer_ring (sage/rings/integer_ring.c:12156) File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/structure/factorization.py", line 188, in from sage.misc.all import prod File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/misc/all.py", line 85, in from functional import (additive_order, File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/misc/functional.py", line 36, in from sage.rings.complex_double import CDF File "complex_double.pyx", line 87, in init sage.rings.complex_double (sage/rings/complex_double.c:16745) File "real_mpfr.pxd", line 15, in init sage.rings.complex_number (sage/rings/complex_number.c:18304) File "real_mpfr.pyx", line 1, in init sage.rings.real_mpfr (sage/rings/real_mpfr.c:33344) File "utils.pyx", line 11, in init sage.libs.mpmath.utils (sage/libs/mpmath/utils.c:6633) File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/all.py", line 86, in from sage.libs.all import * File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/libs/all.py", line 1, in import sage.libs.ntl.all as ntl File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/libs/ntl/__init__.py", line 1, in import all File "/Applications/sage-5.9/local/lib/python2.7/site-packages/sage/libs/ntl/all.py", line 26, in from sage.libs.ntl.ntl_ZZ import ( File "ntl_ZZ.pyx", line 24, in init sage.libs.ntl.ntl_ZZ (sage/libs/ntl/ntl_ZZ.cpp:7011) ImportError: cannot import name IntegerRing  I just stumbled upon local/bin/sage-eval which imports this at the beginning: import sys from sage.all import * from sage.calculus.predefined import x from sage.misc.preparser import preparse  When I do ... 2013-05-31 08:31:14 +0200 commented answer SIGILL in forked process In most cases, one output. Sometimes more. I get the feeling that this is MacOSX related. 2013-05-31 08:23:54 +0200 commented answer SIGILL in forked process It happens if you called _fork_test_func() also in the parent process before the fork. I slightly extended my last simple test case. With that test case, it also crashes in a fresh Sage session. 2013-05-31 08:16:49 +0200 commented answer SIGILL in forked process No, I don't get an error with print 1+1. I think it only happens when I call other more complicated functions from Sage. I am just playing more around and I just figured out that the crash also doesn't happen in a fresh session with my other example. So some internal state caused this. I try to work on a test case which also works in a fresh Sage session. 2013-05-31 06:54:19 +0200 commented answer SIGILL in forked process I also tried to use pure Python functions. It does not crash it that case for me neither. But see my _fork_test_func and try with that one. I downloaded the MacOSX binaries. That is Sage 5.8. 2013-05-31 06:13:24 +0200 commented answer where is sage.databases.db.Database- I tried so far as that I just did that (see my commits [here](https://github.com/martinra/psage/pull/1)) and it imports fine but I'm not sure if it really works. That was not important for me as other stuff from PSage works now (which failed before because of the failing import) with a more recent Sage (5.8 and 5.9). 2013-05-31 04:57:19 +0200 asked a question SIGILL in forked process I am playing around with fork. I have a very simple test case which is basically like this: def fork_test(): import os pid = os.fork() if pid != 0: print "parent, child: %i" % pid os.waitpid(pid, 0) else: print "child" try: # some dummy matrix calculation finally: os._exit(0)  (See _fork_test_func() below for some sample matrix calculations.) And I'm getting: ------------------------------------------------------------------------ Unhandled SIGILL: An illegal instruction occurred in Sage. This probably occurred because a *compiled* component of Sage has a bug in it and is not properly wrapped with sig_on(), sig_off(). You might want to run Sage under gdb with 'sage -gdb' to debug this. Sage will now terminate. ------------------------------------------------------------------------  With this (incomplete) backtrace: Crashed Thread: 0 Dispatch queue: com.apple.root.default-priority Exception Type: EXC_BAD_INSTRUCTION (SIGILL) Exception Codes: 0x0000000000000001, 0x0000000000000000 Application Specific Information: BUG IN LIBDISPATCH: flawed group/semaphore logic Thread 0 Crashed:: Dispatch queue: com.apple.root.default-priority 0 libsystem_kernel.dylib 0x00007fff8c6d1d46 __kill + 10 1 libcsage.dylib 0x0000000101717f33 sigdie + 124 2 libcsage.dylib 0x0000000101717719 sage_signal_handler + 364 3 libsystem_c.dylib 0x00007fff86b1094a _sigtramp + 26 4 libdispatch.dylib 0x00007fff89a66c74 _dispatch_thread_semaphore_signal + 27 5 libdispatch.dylib 0x00007fff89a66f3e _dispatch_apply2 + 143 6 libdispatch.dylib 0x00007fff89a66e30 dispatch_apply_f + 440 7 libBLAS.dylib 0x00007fff906ca435 APL_dtrsm + 1963 8 libBLAS.dylib 0x00007fff906702b6 cblas_dtrsm + 882 9 matrix_modn_dense_double.so 0x0000000108612615 void FFLAS::Protected::ftrsmRightLowerNoTransUnit::delayed >(FFPACK::Modular const&, unsigned long, unsigned long, FFPACK::Modular::Element*, unsigned long, FFPACK::Modular::Element*, unsigned long, unsigned long, unsigned long) + 2853 10 matrix_modn_dense_double.so 0x0000000108611daa void FFLAS::Protected::ftrsmRightLowerNoTransUnit::delayed >(FFPACK::Modular const&, unsigned long, unsigned long, FFPACK::Modular::Element*, unsigned long, FFPACK::Modular::Element*, unsigned long, unsigned long, unsigned long) + 698 11 matrix_modn_dense_double.so 0x0000000108612ccf void FFLAS::Protected::ftrsmRightLowerNoTransUnit::operator() >(FFPACK::Modular const&, unsigned long, unsigned long, FFPACK::Modular::Element*, unsigned long, FFPACK::Modular::Element*, unsigned long) + 831 12 ??? 0x00007f99e481a028 0 + 140298940424232 Thread 1: 0 libsystem_kernel.dylib 0x00007fff8c6d26d6 __workq_kernreturn + 10 1 libsystem_c.dylib 0x00007fff86b24f4c _pthread_workq_return + 25 2 libsystem_c.dylib 0x00007fff86b24d13 _pthread_wqthread + 412 3 libsystem_c.dylib 0x00007fff86b0f1d1 start_wqthread + 13 Thread 2: 0 libsystem_kernel.dylib 0x00007fff8c6d26d6 __workq_kernreturn + 10 1 libsystem_c.dylib 0x00007fff86b24f4c _pthread_workq_return + 25 2 libsystem_c.dylib 0x00007fff86b24d13 _pthread_wqthread + 412 3 libsystem_c.dylib 0x00007fff86b0f1d1 start_wqthread + 13 Thread 0 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x00007fff5ec8e418 rcx: 0x00007fff5ec8df28 rdx: 0x0000000000000000 rdi: 0x000000000000b8f7 rsi: 0x0000000000000004 rbp: 0x00007fff5ec8df40 rsp: 0x00007fff5ec8df28 r8: 0x00007fff5ec8e418 r9: 0x0000000000000000 r10: 0x000000000000000a r11: 0x0000000000000202 r12: 0x00007f99ea500de0 r13: 0x0000000000000003 r14: 0x00007fff5ec8e860 r15: 0x00007fff906ca447 rip: 0x00007fff8c6d1d46 rfl: 0x0000000000000202 cr2: 0x00007fff74a29848 Logical CPU: 0  Is there something special I need to do after a fork? I looked up the fork decorator of Sage and it looks like it basically does the same. The crash also happens with the fork decorator of Sage itself. Another test case: def fork_test2(): def test(): # do some stuff from sage.parallel.decorate import fork test_ = fork(test, verbose=True) test_()  Even simpler test case: def _fork_test_func(): while True: m = matrix(QQ, 100, [randrange(-100,100) for i in range(100*100 ... 2013-05-25 11:36:30 +0200 asked a question where is sage.databases.db.Database- I am trying to port some older Sage code (I think for Sage 5.4 or so). It uses sage.databases.db.Database but that doesn't seem to exist anymore. Where is it? The file I'm trying to update is euler_database.py. Edit: Can I just use from sage.databases.all import SQLDatabase as Database  ? 2013-05-25 10:14:10 +0200 received badge ● Supporter (source) 2013-05-25 10:14:06 +0200 received badge ● Scholar (source) 2013-05-25 10:14:06 +0200 marked best answer convert expression to QuadraticField Hi, You should avoid usage of the symbolic ring as much as possible. It is useful to deal with functions, derivations and such but not to deal with arithmetic questions. There is a class called AlgebraicConverter in sage.symbolic.expression_conversions which is implemented and called in such case. It works well for the field of algebraic numbers QQbar:: sage: QQbar(sqrt(-3)) 1.732050807568878?*I sage: QQbar(sin(pi/4)) 0.7071067811865475?  But not for other number fields. Nevertheless it is possible to do sage: K = QuadraticField(-3) sage: K(3).sqrt() a  The method sqrt above actually uses Pari in the background: if your number field contains such a root it returns it, otherwise the answer will be an element of the symbolic ring. sage: K(3).sqrt().sqrt() 3^(1/4)  2013-05-25 10:13:05 +0200 asked a question sage -sh on Mac I got the instruction to use sage -sh to install some PSage modules. However, many environment variables seem to be messed up. It has /usr/local/bin and others prioritized before the Sage dirs. I manually edited the \$PATH variable to update this issue, via set PATH /Applications/sage-5.8/spkg/bin /Applications/sage-5.8/local/bin /usr/bin/ /bin /sbin. However, now Cython still has problems to find the right module. When starting it, it looks like: az@ip229 ~/P/psage> cython -h Traceback (most recent call last): File "/Applications/sage-5.8/local/bin/cython", line 7, in from Cython.Compiler.Main import main File "/Library/Python/2.7/site-packages/Cython-0.18-py2.7-macosx-10.8-x86_64.egg/Cython/Compiler/Main.py", line 17, in from Scanning import PyrexScanner, FileSourceDescriptor ImportError: dlopen(/Library/Python/2.7/site-packages/Cython-0.18-py2.7-macosx-10.8-x86_64.egg/Cython/Compiler/Scanning.so, 2): Symbol not found: _PyUnicodeUCS2_Compare Referenced from: /Library/Python/2.7/site-packages/Cython-0.18-py2.7-macosx-10.8-x86_64.egg/Cython/Compiler/Scanning.so Expected in: flat namespace in /Library/Python/2.7/site-packages/Cython-0.18-py2.7-macosx-10.8-x86_64.egg/Cython/Compiler/Scanning.so  Update: Doing set PYTHONPATH /Applications/sage-5.8/local/lib/python fixed at least this particular problem with Cython. Is there any suggestion about what I can do to easily overcome these problems?