Zaawansowane CPP/Ćwiczenia 8: Metaprogramowanie
Ćwiczenie 1
Napisać szablon funkcji lub klasy wyliczający funkcję silnia:
Ćwiczenie 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:
Ćwiczenie 3
Wymyśl i zaimplementuj jako metaprogram, szybszy algorytm funkcji pow(x)
.
Ćwiczenie 4
Napisz szablon generujący, pierwsze N
wyrazów rozwinięcia funkcji
sin(x)
:
Ćwiczenie 5
Napisz szablon generujący funkcję implementującą iloczyn skalarny dwu wektorów. Parametrem szablonu ma być dlugość możonych szablonów.
Ćwiczenie 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:
Tablica jest reprezentowana w pamięci zgodnie z konwencją C
, tzn.
elementowi odpowiada A[M*i+j]
.