This repository has been archived on 2022-05-15. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Kollokvium0307/Верхолин Игорь/mul.rkt

62 lines
944 B
Racket

#lang racket
(require string-util)
(define (acc x n)
(* (string->number x) (expt 2 n))
)
(define (n_div x y)
(round (/ x y))
)
(define (log2 x)
(define (rec x y)
(if (< x 1)
;then
y
;else
(rec (quotient (floor x) 2) (+ y 1))
)
)
(rec (- x 1) 0)
)
(define (rround num prec)
(string->number (real->decimal-string num prec))
)
(define (rmul x y n)
(define (sub_mul)
(define k (+ q r 1))
(define l (+ p s 1))
(define m (+ p q n 4))
(rround (/ (* (acc y l) (acc x k)) (expt 2 m)) n)
)
(define n2 (+ n 2))
(define r (quotient n2 2))
(writeln r)
(define s (- n2 r))
(writeln s)
(define xr (acc x r))
(define ys (acc y s))
(define p (log2 xr))
(writeln p)
(define q (log2 ys))
(writeln q)
(if (and (equal? p 0) (equal? q 0))
;then
0
;else
(sub_mul)
)
)
(rmul "1.0003" "1.0002" 3)
;(el "35.34" 3)
;(acc "4.5" 3)