Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #121249

Re: constexpr is really very smart!

From Michael S <already5chosen@yahoo.com>
Newsgroups comp.lang.c++
Subject Re: constexpr is really very smart!
Date 2024-12-18 14:17 +0200
Organization A noiseless patient Spider
Message-ID <20241218141740.00004649@yahoo.com> (permalink)
References <vjndub$2glcu$1@paganini.bofh.team> <87h6726oyo.fsf@nosuchdomain.example.com> <vjtkcb$39cft$1@paganini.bofh.team>

Show all headers | View raw


On Wed, 18 Dec 2024 04:45:20 +0000
Student Project <student@invalid.invalid> wrote:

> 
> <+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>
> #include <iostream>
> #include <chrono>
> 
> int fibonacci(int n)
> {
>      if (n <= 1)
>          return n;
>      return fibonacci(n - 2) + fibonacci(n - 1);
> }
> 
> constexpr int fibonacci_c(int n)
> {
>      if (n <= 1)
>          return n;
>      return fibonacci_c(n - 2) + fibonacci_c(n - 1);
> }
> 
> int main(void)
> {
>      // using namespace std::literals::chrono_literals;
>      auto start = std::chrono::high_resolution_clock::now();
>      constexpr int num = 35;
>      /*constexpr*/ int result_c = fibonacci_c(num);
> 
>      std::cout << "Fibonacci_c " << result_c << "\n";
>      std::cout << "Time taken: " << 
> std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() 
> - start).count() << "\n";
> 
>      start = std::chrono::high_resolution_clock::now();
>      int result = fibonacci(num);
>      std::cout << "Fibonacci " << result << "\n";
>      std::cout << "Time taken: " << 
> std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now() 
> - start).count() << "\n";
> 
> }
> 
> <+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> 

It is likely that at least part of the time you are measuring cout print
time instead of calculations time you are interested in.
Also, if you are using gcc on Windows then there is a significant chance
that implementation of high_resolution_clock is broken. steady_clock is
more reliable.

Try following:
 volatile dummy = 0;
 auto t00 = std::chrono::steady_clock::now();// first call can be slow
 dummy = 1;
 auto t0 = std::chrono::steady_clock::now();
 dummy = 2;
 auto result_c = fibonacci_c(num);
 dummy = 3;
 auto t1 = std::chrono::steady_clock::now();
 dummy = 4;
 auto result = fibonacci(num);
 dummy = 5;
 auto t2 = std::chrono::steady_clock::now();
 dummy = 3;

 etc...




Back to comp.lang.c++ | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

constexpr is really very smart! Student Project <student@invalid.invalid> - 2024-12-15 20:20 +0000
  Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-16 11:28 +0200
    Re: constexpr is really very smart! David Brown <david.brown@hesbynett.no> - 2024-12-16 11:18 +0100
      Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-16 13:23 +0200
        Re: constexpr is really very smart! David Brown <david.brown@hesbynett.no> - 2024-12-16 13:43 +0100
          Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-17 11:08 +0200
            Re: constexpr is really very smart! David Brown <david.brown@hesbynett.no> - 2024-12-17 11:10 +0100
        Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-18 03:26 -0800
          Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-18 14:39 +0200
            Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-18 07:42 -0800
    Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-17 12:54 -0800
      Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-18 01:33 +0200
        Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-18 13:51 +0200
          Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-19 00:40 -0800
            Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-20 02:17 +0200
              Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-20 14:59 -0800
                Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-22 00:07 +0200
                Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-22 10:25 -0800
                Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-23 17:47 +0200
                Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-24 05:21 -0800
                Bignum multiplication in Python vs GMP (was: constexpr is really very smart!) Michael S <already5chosen@yahoo.com> - 2024-12-25 11:05 +0200
                Re: Bignum multiplication in Python vs GMP (was: constexpr is really very smart!) Michael S <already5chosen@yahoo.com> - 2024-12-25 13:33 +0200
                Re: Bignum multiplication in Python vs GMP (was: constexpr is really very smart!) Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-26 18:54 -0800
                Re: Bignum multiplication in Python vs GMP (was: constexpr is really very smart!) Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-26 18:42 -0800
          Re: constexpr is really very smart! Student Project <student@invalid.invalid> - 2024-12-19 19:14 +0000
        Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-18 09:45 -0800
          Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-18 22:00 +0200
            Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-19 00:57 -0800
              Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-19 23:45 +0200
                Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-20 14:31 -0800
                Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-22 00:14 +0200
                Re: constexpr is really very smart! James Kuyper <jameskuyper@alumni.caltech.edu> - 2024-12-21 17:55 -0500
                Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-22 02:22 +0200
                Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-22 10:33 -0800
                Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-23 00:05 +0200
                Re: constexpr is really very smart! Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-12-22 17:17 -0800
  Re: constexpr is really very smart! Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-12-17 12:20 -0800
    Re: constexpr is really very smart! Student Project <student@invalid.invalid> - 2024-12-18 04:45 +0000
      Re: constexpr is really very smart! Michael S <already5chosen@yahoo.com> - 2024-12-18 14:17 +0200

csiph-web