qwiener.h 544 B

12345678910111213141516171819202122232425262728293031323334
  1. #ifndef _QA_WIENER_H_
  2. #define _QA_WIENER_H
  3. /**
  4. * Fractions made of bignums.
  5. */
  6. typedef struct bigfraction {
  7. BIGNUM* h; /**< numerator */
  8. BIGNUM* k; /**< denominator */
  9. } bigfraction_t;
  10. typedef struct cf {
  11. bigfraction_t fs[3];
  12. short i;
  13. bigfraction_t x;
  14. BIGNUM* a;
  15. BN_CTX* ctx;
  16. } cf_t;
  17. /* continued fractions utilities. */
  18. cf_t* cf_new(void);
  19. cf_t* cf_init(cf_t *f, BIGNUM *num, BIGNUM *b);
  20. void cf_free(cf_t* f);
  21. bigfraction_t* cf_next(cf_t *f);
  22. extern struct qa_question WienerQuestion;
  23. #endif /* _QA_WIENER_H_ */