> Allocating, filling, accessing and GC'ing the return object will take
more time than calling the underlying C
That seems like the nail in the coffin for this suggestion. Thanks. I
don't have anything to add.
On Fri, Jun 23, 2017 at 9:34 AM, Florian Bösch wrote:
> On Thu, Jun 22, 2017 at 8:
On Thu, Jun 22, 2017 at 8:02 PM, Robert Poor wrote:
>
>function sincos(theta) {
> return { sin: sin(theta), cos: cos(theta) };
>}
>
Allocating, filling, accessing and GC'ing the return object will take more
time than calling the underlying C library function which emits the machine
On Fri, Jun 23, 2017 at 10:38 AM, Robert Poor wrote:
>> `return { sin: sin(theta), cos: cos(theta) };` will add pressure to the
>> nursery of the garbage collector.
>
> True -- forgive my ignorance, but is there a way to return multiple values
> that does not cause heap allocation? That was my i
I previously wrote:
>> most implementations for cos(theta) actually generate sin(theta) as a
"byproduct"
As others several have pointed out, that's not really true. V8, for
example, uses a (different) Taylor series approximation for sin and cos.
But given the amount of work that goes into reduci
Hi Robert,
On Thu, Jun 22, 2017 at 6:02 PM, Robert Poor wrote:
> How often have you seen code that calls Math.sin() and Math.cos() with
> the same argument, e.g:
>
>x = r * Math.cos(theta);
>y = r * Math.sin(theta);
>
> ? This trope is repeated for polar coordinates, complex arithmetic,
Also the sign of the `cos` component is wrong for a bunch of inputs.
On Thursday, June 22, 2017 8:16:21 PM CEST Boris Zbarsky wrote:
> On 6/22/17 2:13 PM, Алексей wrote:
> > function sincos (a) {
> >
> > const sin = Math.sin(a)
> > const cos = (1 - sin**2)**0.5
>
> This will completely f
On 6/22/17 2:13 PM, Алексей wrote:
function sincos (a) {
const sin = Math.sin(a)
const cos = (1 - sin**2)**0.5
This will completely fail for a near pi/2. It will return zero instead
of the correct small but nonzero value it should be returning.
-Boris
___
On 6/22/17 2:02 PM, Robert Poor wrote:
However, most implementations for cos(theta) actually generate
sin(theta) as a "byproduct" (and vice-versa).
At first glance, the v8 implementation of cos typically uses a Taylor
series and does not compute sin.
And the SpiderMonkey implementation of co
If you think that performance of cos is too big (did you measure it?) than
just calculate cos from sin with the formula sin^2 + con^2 = 1
```js
function sincos (a) {
const sin = Math.sin(a)
const cos = (1 - sin**2)**0.5
return {sin, cos}
}
```
2017-06-22 21:02 GMT+03:00 Robert Poor :
[Preamble: this is my first post to es-discuss -- if this isn't the
right place to suggest language extensions, please let me know.
Thanks. - rdp]
How often have you seen code that calls Math.sin() and Math.cos() with
the same argument, e.g:
x = r * Math.cos(theta);
y = r * Math.sin(theta);
10 matches
Mail list logo