Zadanie 1 Napisać szablon funkcji lub klasy wyliczający
funkcję silnia:
Zadanie 2 Zmodyfikować szablon Sqrt
tak aby liczył
całkowite przyliżenie logarytmu liczby
o dowolnej całkowitej
podstawie P<N
. Logarytm z liczby
przy podstawie
oznaczany
to rozwiązanie równania:
Wskazówka
Najpierw zaimplementuj szablon liczący dowolną (calkowitą)
potęgę liczby całkowitej.
Zadanie 3
Wymyśl i zaimplementuj jako metaprogram, szybszy algorytm funkcji pow(x)
.
Wskazówka
Zadanie 4
Napisz szablon generujący, pierwsze N
wyrazów rozwinięcia funkcji
sin(x)
:
<N>
Zadanie 5
Napisz szablon generujący funkcję implementującą iloczyn skalarny dwu wektorów.
Parametrem szablonu ma być dlugość możonych szablonów.
<N>
Zadanie 6
Napisz szablon generujący funkcję implementujący iloczyn macierzy
NxM
i wektora o M
elementach:
void matrix_v<N>(double *A,double *v,double *u)
powoduje obliczenie:
Parser nie mógł rozpoznać (nieznana funkcja „\aligned”): {\displaystyle \displaystyle \aligned u_0&= A_{0,0} v_0+A_{0,1} v_1+\cdots+A_{0,M-1} v_{M-1}\\ u_1&= A_{1,0} v_0+A_{1,1} v_1+\cdots+A_{1,M-1} v_{M-1}\\ &\vdots&\\ u_{N-1}&= A_{N-1,0} v_0+A_{N-1,1} v_1+\cdots+A_{N-1,M-1} v_{M-1}\\ \endaligned}
Tablica
jest reprezentowana w pamięci zgodnie z konwencją C
, tzn.
elementowi
odpowiada A[M*i+j]
.