#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <givaro/givinteger.h>
#define GMPFIBTABLESIZE 93
#define GMPCNSTUINT(C) ((uint64_t) C##u)
};
const uint64_t n) {
if (n <= 93) {
uint64_t k(n);
}
uint64_t k(n); ++k; k >>=1 ;
if (n & 1u) {
r <<= 1;
r -= t;
r *= t;
t <<= 1;
t -= r;
} else {
t <<= 1;
t += r;
t *= r;
r <<= 1;
r += t;
}
return t;
}
Integer&
Fibonacci(Integer& t,
const uint64_t n) {
if (n & 1u) {
uint64_t k(n); ++k; k >>=1 ;
t <<= 1;
return ( (k & 1u)? ++t : --t );
} else {
t <<= 1;
}
}
}
int main (
int argc,
char * * argv) {
uint64_t n = argc > 1 ? (uint64_t)atoi(argv[1]) : 42u;
std::cout << t << std::endl;
std::clog << tim << std::endl;
return 0;
}
const uint64_t givfibtable[93+2]
Definition: Fibonacci.C:26
#define GMPFIBTABLESIZE
Definition: Fibonacci.C:23
#define GMPCNSTUINT(C)
Definition: Fibonacci.C:24
int main(int argc, char **argv)
Definition: benchmark-recint_exp.C:20
This is the Integer class.
Definition: gmp++_int.h:160
static giv_all_inlined Integer & sub(Integer &res, const Integer &n1, const Integer &n2)
Substraction res=n1-n2.
Definition: gmp++_int_sub.C:58
Timer.
Definition: givtimer.h:129
void start()
Start timer.
Definition: givtimer.C:164
void stop()
Stop timer.
Definition: givtimer.C:172
Namespace in which the whole Givaro library resides.
Definition: all_field.C:23
Integer & Fibonacci(Integer &r, Integer &t, const uint64_t n)
Definition: Fibonacci.C:130
MG & a
Definition: rmadd.h:143
MG const rmint< K, MG > & b
Definition: rmadd.h:143