emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Eric Schulte" <schulte.eric@gmail.com>
To: Renier Marchand <renierm@gmail.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Complex numbers
Date: Tue, 12 Apr 2011 21:52:12 -0600	[thread overview]
Message-ID: <87tye24xlf.fsf@gmail.com> (raw)
In-Reply-To: <BANLkTimYYOMj9t-buDz0fL-t14=nwB+bdw@mail.gmail.com> (Renier Marchand's message of "Tue, 12 Apr 2011 17:09:20 +0200")

Hi Renier,

The Org-mode table machinery is interpreting the values of your table
cells as emacs lisp (given that the table formula is an elisp, rather
than a calc formula).  Due to the "," the result is a weird nested list
which confuses your python code block.  Some options here include...

1. wrapping these cells in quotes so that they are passed to the python
   block as strings...

   #+source: parameter-variation(data=0)
   #+begin_src python :result values
     return 'text'
   #+end_src

   |---------------------------------------|
   | "(0.0331901438056,0.000535222885197)" |
   | "(0.0333434157791,0.000537930174356)" |
   | "(0.0345727512157,0.000559346040457)" |
   | "(0.0353146483908,0.000571501584524)" |
   | "(0.0355522909393,0.000574387067408)" |
   | "(0.0356575682336,0.000574851263615)" |
   | "(0.0357806926897,0.000575051685084)" |
   |---------------------------------------|
   | text                                  |
   #+TBLFM: @8$1='(sbe parameter-variation (nums @1$1..@7$1))

2. referencing the table from an external code block, rather than inside
   of a table formula.  This is probably the easier solution, but it
   doesn't insert the result into your table, unless you do something
   tricky like give the code block and the table the same name so that
   the results of the code block replace the table...

   #+results: complex-data
   |-------------------------------------|
   | (0.0331901438056,0.000535222885197) |
   | (0.0333434157791,0.000537930174356) |
   | (0.0345727512157,0.000559346040457) |
   | (0.0353146483908,0.000571501584524) |
   | (0.0355522909393,0.000574387067408) |
   | (0.0356575682336,0.000574851263615) |
   | (0.0357806926897,0.000575051685084) |
   #+TBLFM: @8$1='(sbe parameter-variation (nums @1$1..@7$1))

   #+begin_src python :var data=complex-data
     return data
   #+end_src

Hope this helps -- Eric

Renier Marchand <renierm@gmail.com> writes:

> Hi.
>
> I have been playing around with complex data that has been returned
> from Python. This is obviously not in calc.el format but if I change
> them to the correct format I can manipulate them using calc.
>
> but
>
> When I want to pass the complex numbers (python format) to python I
> get an error. If I pass real number everything works as expected
>
> For example:
>
>       #+source: parameter-variation(data=0)
>       #+begin_src python :result values
>         return 'text'
>       #+end_src
>
>
>       |   |  hmin |                                     |
>       |---+-------+-------------------------------------|
>       |   |       |                                     |
>       |   |  0.05 | (0.0331901438056,0.000535222885197) |
>       |   |   0.1 | (0.0333434157791,0.000537930174356) |
>       |   |   0.3 | (0.0345727512157,0.000559346040457) |
>       |   |   0.6 | (0.0353146483908,0.000571501584524) |
>       |   |   0.9 | (0.0355522909393,0.000574387067408) |
>       |   |   1.2 | (0.0356575682336,0.000574851263615) |
>       |   |  10.0 | (0.0357806926897,0.000575051685084) |
>       | $ | x=0.1 | y=0.1                               |
>       |   |  text |                                     |
>       #+TBLFM: @11$2='(sbe "parameter-variation" (data
> @3$2..@9$2))::@11$3='(sbe "parameter-variation" (data @3$3..@9$3))
>
> i.e. I get the word 'text' returned for column 2 where there are real
> numbers but I don't get anything returned where there are complex
> numbers. As you can see, there are no actual calculation performed on
> the data I am just returning 'text' so I am expecting it to work in
> both instances.
>
> The debug sessions show the following for the real column:
>
> Substitution history of formula
> Orig:   '(sbe "parameter-variation" (data @3$2..@9$2))
> $xyz->  '(sbe "parameter-variation" (data @3$2..@9$2))
> @r$c->  '(sbe "parameter-variation" (data #("0.05" 0 4 (fontified t
> face org-table)) #("0.1" 0 3 (fontified t face org-table)) #("0.3" 0 3
> (fontified t face org-table)) #("0.6" 0 3 (fontified t face
> org-table)) #("0.9" 0 3 (fontified t face org-table)) #("1.2" 0 3
> (fontified t face org-table)) #("10.0" 0 4 (fontified t face
> org-table))))
> $1->    '(sbe "parameter-variation" (data #("0.05" 0 4 (fontified t
> face org-table)) #("0.1" 0 3 (fontified t face org-table)) #("0.3" 0 3
> (fontified t face org-table)) #("0.6" 0 3 (fontified t face
> org-table)) #("0.9" 0 3 (fontified t face org-table)) #("1.2" 0 3
> (fontified t face org-table)) #("10.0" 0 4 (fontified t face
> org-table))))
> Result: text
> Format: NONE
> Final:  text
>
> and for the complex column:
>
> Substitution history of formula
> Orig:   '(sbe "parameter-variation" (data @3$3..@9$3))
> $xyz->  '(sbe "parameter-variation" (data @3$3..@9$3))
> @r$c->  '(sbe "parameter-variation" (data
> #("(0.0331901438056,0.000535222885197)" 0 35 (fontified t face
> org-table)) #("(0.0333434157791,0.000537930174356)" 0 35 (fontified t
> face org-table)) #("(0.0345727512157,0.000559346040457)" 0 35
> (fontified t face org-table)) #("(0.0353146483908,0.000571501584524)"
> 0 35 (fontified t face org-table))
> #("(0.0355522909393,0.000574387067408)" 0 35 (fontified t face
> org-table)) #("(0.0356575682336,0.000574851263615)" 0 35 (fontified t
> face org-table)) #("(0.0357806926897,0.000575051685084)" 0 35
> (fontified t face org-table))))
> $1->    '(sbe "parameter-variation" (data
> #("(0.0331901438056,0.000535222885197)" 0 35 (fontified t face
> org-table)) #("(0.0333434157791,0.000537930174356)" 0 35 (fontified t
> face org-table)) #("(0.0345727512157,0.000559346040457)" 0 35
> (fontified t face org-table)) #("(0.0353146483908,0.000571501584524)"
> 0 35 (fontified t face org-table))
> #("(0.0355522909393,0.000574387067408)" 0 35 (fontified t face
> org-table)) #("(0.0356575682336,0.000574851263615)" 0 35 (fontified t
> face org-table)) #("(0.0357806926897,0.000575051685084)" 0 35
> (fontified t face org-table))))
> Result:
> Format: NONE
> Final:
>
>
> Thank you very much for your help.
>
> Renier
>
>

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/

  reply	other threads:[~2011-04-13  3:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-12 15:09 Complex numbers Renier Marchand
2011-04-13  3:52 ` Eric Schulte [this message]
2011-04-13  6:37   ` Renier Marchand
2011-04-13  9:16   ` Renier Marchand
2011-04-13 16:35     ` Eric Schulte
2011-04-15 15:03       ` Renier Marchand
2011-04-15 15:50         ` Eric Schulte

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87tye24xlf.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=renierm@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).