On 7/12/2005 9:53 AM, [EMAIL PROTECTED] wrote:
> hi all
>
> i simply wanted to work with real numbers and thought that (-8)^(1/3) should
> work.
It might work in an ideal world, but not in the R floating point world.
There's no way to express (1/3) exactly. Since (-8)^(1/3 + epsilon)
(restricted to the reals) is not defined for epsilon near zero but not
exactly zero, it's really hopeless to expect R to give you what you wanted.
*You* know that you're taking an odd root of a negative number, but R
doesn't. You need to use your knowledge to rewrite that mathematical
expression as the mathematically equivalent -(8^(1/3)) and then things
will be fine.
Duncan Murdoch
>
> sorry for not making the question clearer.
>
> /
> allan
>
> Quoting Duncan Murdoch <[EMAIL PROTECTED]>:
>
>> On 7/12/2005 9:29 AM, Robin Hankin wrote:
>> > Hi
>> >
>> > I find that one often needs to keep reals real and complexes complex.
>> >
>> > Try this:
>> >
>> > "cuberooti" <-
>> > function (x)
>> > {
>> > if (is.complex(x)) {
>> > return(sqrt(x + (0+0i)))
>> > }
>> > sign(x)* abs(x)^(1/3)
>> > }
>> >
>> >
>> > best wishes
>> >
>> > [see that (0+0i) sitting there!]
>>
>> I don't understand this.
>>
>> 1. I don't think you meant to use sqrt() there, did you??
>>
>> 2. What effect does the 0+0i have? x has already been determined to be
>> complex.
>>
>> Duncan Murdoch
>>
>
>
>
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html