Ok, 
i'm not right,pow in C is :
float powf(float x, float y);
       long double powl(long double 

use float32 pow for proper comparison or use powl for C double wersion.

This is demonstartion how when you use go long time, you lose ability to 
read other languages :)


On Friday, August 4, 2017 at 10:15:06 AM UTC+3, dja...@gmail.com wrote:
>
> You are comparing apples to oranges( integer vs float64 pow),
> use integer pow and compare again:
>
>
> func Pow(a, b int) int {
>          p := 1
>          for b > 0 {
>                  if b&1 != 0 {
>                          p *= a
>                  }
>                  b >>= 1
>                  a *= a
>          }
>          return p
> }
>
>
> On Friday, August 4, 2017 at 9:20:41 AM UTC+3, Dorival Pedroso wrote:
>>
>> I've noticed that this C code:
>>
>> #include "math.h"
>> int main() {
>>         double x = 2.5;
>>         int Nmax = 10000000;
>>         for (int N=0; N<Nmax; N++) {
>>                 for (int i=0; i<20; i++) {
>>                         pow(x, i);
>>                 }
>>         }
>> }
>>
>> can run up to 50x faster than this Go code:
>>
>> package main
>>
>> import "math"
>>
>> func main() {
>> x := 2.5
>> Nmax := 10000000
>> for N := 0; N < Nmax; N++ {
>> for i := 0; i < 20; i++ {
>> math.Pow(x, float64(i))
>> }
>> }
>> }
>>
>> The C code was compiled with: gcc -O2 ccode.c -o ccode -lm
>> then run with time ./ccode
>>
>> The Go code was compiled with: go build gcode.go
>> then run with  time ./gcode
>>
>> I've used the time command on Linux (Ubuntu) to get some estimate.
>>
>> So the question is: how can we make the Go code faster?
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to