Alors en fait j'ai quelques contraintes justement et l'une d'elles est de devoir diminuer substantiellement l'utilisation RAM et les temps de calcul pour pour, à terme, implémenter ça en C.
Pour donner un exemple de ce que je cherche à faire : J'ai un traitement qui consiste à interpoler mon signal sur une base de temps différente en utilisant simplement la fonction spline :
samplingData = spline(timeData,Data,newTime);
J'ai joué sur le type en modifiant les entrées avant :
1 2 3 4 5
|
Data = single(Data);
timeData = single(timeData);
newTime = single(newTime);
samplingData = spline(timeData,Data,newTime); |
En procédant comme ça je ne fais rentrer que des variables en simple précision dans la fonction, et donc il me sort un output en simple précision, mais en regardant ce qui se passe à l'intérieur, j'ai constaté que dès le premier calcul intermédiaire, il repasse en double précision et ce jusqu'à la sortie qu'il converti en simple précision.
Mon idée serait de dupliquer la fonction et de la modifier pour que les calculs soient faits en simple précision (intégralement ou en en laissant certains en double pour conserver de la marge).
Est ce que c'est un peu plus clair comme ça ?
Partager