Zaawansowane CPP/Ćwiczenia 8: Metaprogramowanie
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):
Zadanie 5
Napisz szablon generujący funkcję implementującą iloczyn skalarny dwu wektorów. Parametrem szablonu ma być dlugość możonych szablonów.
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:
Tablica jest reprezentowana w pamięci zgodnie z konwencją C, tzn.
elementowi odpowiada A[M*i+j].