again i'm wrong :( On Friday, August 4, 2017 at 10:30:14 AM UTC+3, Sebastien Binet wrote: > > > > On Fri, Aug 4, 2017 at 9:24 AM, <dja...@gmail.com <javascript:>> wrote: > >> 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. >> > > C'pow is with doubles (like Go's math.Pow): > https://linux.die.net/man/3/pow > > ``` > Synopsis > > #include <math.h> > > double pow(double x, double y); > ``` > > -s > > >> 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...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > >
-- 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.