Bonjour, je bosse sur de l'algorithmie et je suis confronter à un problème de conception et d’optimisation.
Comment faire pour choisir une fonction en paramètre de manière efficace ?
En gros je veux un truc du genre :
L'utilisateur de la lib définie :
Et dans le constructeur de Algo, un truc du genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Algo *test = new algo(cosinus); // le cosinus provenant d'une enum
Cela fonctionne très bien mais j'aimerais externaliser mes fonctions dans un autre ficher pour des raison de lisibilité. Dois-je faire une class static avec pour stocker mes fonctions ? Du coup, plus besoin de lambda ? Ou alors est-il plus propre de faire une class dérivé d'Algo pour chaque fonction ? Sinon je peux faire une structure contenant un pointer vers la fonction mais cela est trop car en réalité il s'agit de réseaux de neurones et je ne peux pas créer un pointer vers une fonction par neurones, cela serait trop lourd et ferait trop de répétission, non ? D'ailleurs, les lambda/pointers de fonction sont-ils stocker dans le tas ou la pile ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Bien évidemment cela doit rester le plus optimiser possible car les fonctions sont appelé plusieurs 100ène de milliers de fois pas seconde.
PS : Les cos, sin et tan ne sont ici que pour l'exemple, mes fonctions sont en réalité un peu plus complexes et plus nombreuses que cela et c'est aussi pour cela que je ne peux pas directement mettre mes fonctions dans ma classe Algo.
D'ailleurs il ne s'agit pas juste d'une fonction mais d'un couple de fonction : la fonction et sa dérivée associé.
Merci d'avance pour votre aide

 

 
		
		 
         
 

 
			
			


 
			 
   
 


 choix d'une fonction en argument : lambda, class ou structure ? #optimisation
 choix d'une fonction en argument : lambda, class ou structure ? #optimisation
				 Répondre avec citation
  Répondre avec citation






 
  
  
 
 
 
 
			 Envoyé par foetus
 Envoyé par foetus
					



 
			 
  
 
				
 "
"
 A méditer: La solution la plus simple est toujours la moins compliquée
A méditer: La solution la plus simple est toujours la moins compliquée
 
			 
			



 
  

 
						
Partager