Système de Calculs Matriciels général (V1.0.1)
Système de Calculs Matriciels général (V1.0.1)
Bonjour à tous,
Je mets à disposition ici une librairie de calcul matriciel dit général puisque cette dernière peut traiter les matrices de tout format. Bien entendu, les règles mathématique à propos des calculs matricielles doivent être respectés. Exemple : on ne peut pas additionner une matrice 2X2 avec une 3X3.
Édit : Le code source est désormais disponible en téléchargement http://pages.videotron.com/gsaumure/fil ... Matrix.zip
Édit 2 : L'archive viens d'être mise à jour. Je prévois également produire des pages d'aides html sur la librairie Matrix durant les prochains jours. De plus, le système de Courbes et surfaces est trop compliqué et ne fera pas partie de la librairie Matrix. Je prévois plutôt produire une librairie séparée mais dépendante de la librairie Matrix et probablement quelques autres en plus.
Édit 3 : Version 1.0.1, Quoi dire, j'ai ajouté quelques commandes, corrigé un problème de fuite mémoire et terminé la version anglaise des pages d'aide. La version française de l'aide ne sera pas prête avant encore une semaine.
A+
Guimauve
Je mets à disposition ici une librairie de calcul matriciel dit général puisque cette dernière peut traiter les matrices de tout format. Bien entendu, les règles mathématique à propos des calculs matricielles doivent être respectés. Exemple : on ne peut pas additionner une matrice 2X2 avec une 3X3.
Édit : Le code source est désormais disponible en téléchargement http://pages.videotron.com/gsaumure/fil ... Matrix.zip
Édit 2 : L'archive viens d'être mise à jour. Je prévois également produire des pages d'aides html sur la librairie Matrix durant les prochains jours. De plus, le système de Courbes et surfaces est trop compliqué et ne fera pas partie de la librairie Matrix. Je prévois plutôt produire une librairie séparée mais dépendante de la librairie Matrix et probablement quelques autres en plus.
Édit 3 : Version 1.0.1, Quoi dire, j'ai ajouté quelques commandes, corrigé un problème de fuite mémoire et terminé la version anglaise des pages d'aide. La version française de l'aide ne sera pas prête avant encore une semaine.
A+
Guimauve
Dernière modification par Guimauve le mar. 17/janv./2012 19:00, modifié 7 fois.
Re: Système de Calculs Matriciels général (V0.9.5)
Bonjour à tous,
Voir le lien de téléchargement dans le premier message.
A+
Guimauve
Voir le lien de téléchargement dans le premier message.
A+
Guimauve
Dernière modification par Guimauve le ven. 19/août/2011 1:35, modifié 1 fois.
Re: Système de Calculs Matriciels général (V0.9.7)
Bonjour Guimauve.
J'obtiens le message suivant :
Expression est trop complexe // manque de registres CPU
Dans la procedure :
Procedure ExtractMatrixDiagonal(*Diagonal.Matrix, *MatrixA.Matrix)
+
J'obtiens le message suivant :
Expression est trop complexe // manque de registres CPU

Dans la procedure :
Procedure ExtractMatrixDiagonal(*Diagonal.Matrix, *MatrixA.Matrix)
+
Re: Système de Calculs Matriciels général (V0.9.7)
idem
Procedure ExtractMatrixDiagonal(*Diagonal.Matrix, *MatrixA.Matrix)
MinValue(Min.u, GetMatrixLine(*MatrixA), GetMatrixRow(*MatrixA))
CreateNewMatrix(*Diagonal, Min, 1, "ExtractMatrixDiagonal()")
For PivotID = 0 To Min - 1
Private_SetMatrixElement(*MatrixA, PivotID, 0, Private_GetMatrixElement(*MatrixA, PivotID, PivotID))
Next
EndProcedure
Too complex expression ( out of cpu registers ) , please split it.
Re: Système de Calculs Matriciels général (V0.9.7)
Bon !!!
Je vais voir ce qui cloche, puisque chez moi cette fonction retourne un vecteur avec uniquement des zéros.
Je n'ai pas de message d'erreur.
Edit : Est-ce que vous pouvez remplacer le code de la commande ExtractMatrixDiagonal() présent dans la librairie par celui-ci
et voir si le problème persiste.
De plus, je suis arrivé à la version 0.9.8, je la mettrai en ligne après la correction de ce problème.
A+
Guimauve
Je vais voir ce qui cloche, puisque chez moi cette fonction retourne un vecteur avec uniquement des zéros.
Je n'ai pas de message d'erreur.
Edit : Est-ce que vous pouvez remplacer le code de la commande ExtractMatrixDiagonal() présent dans la librairie par celui-ci
et voir si le problème persiste.
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The ExtractMatrixDiagonal Operator <<<<<
Procedure ExtractMatrixDiagonal(*Diagonal.Matrix, *MatrixA.Matrix)
MinValue(Min.u, GetMatrixLine(*MatrixA), GetMatrixRow(*MatrixA))
CreateNewMatrix(*Diagonal, Min, 1, "ExtractMatrixDiagonal()")
For PivotID = 0 To Min - 1
Private_SetMatrixElement(*Diagonal, PivotID, 0, Private_GetMatrixElement(*MatrixA, PivotID, PivotID))
Next
EndProcedure
A+
Guimauve
Re: Système de Calculs Matriciels général (V0.9.7)
Re-Bonjour
Chez moi, avec le code corrigé pour la commande ExtractMatrixDiagonal(), cet exemple :
Affiche dans la fenêtre de débogage ceci :
Mais par curiosité, sur quelle machine exécutez-vous le code de démonstration, quel version de PB ?
A+
Guimauve
Chez moi, avec le code corrigé pour la commande ExtractMatrixDiagonal(), cet exemple :
Code : Tout sélectionner
IncludeFile "Maths Matrix Calculation.pb"
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Random Matrix"
RandomMatrix(RandomMatrix.Matrix, 5, 5, -9.0, 9.0)
DebugMatrix(RandomMatrix)
Debug ""
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Random Matrix Diagonal"
ExtractMatrixDiagonal(Diagonal.Matrix, RandomMatrix)
DebugMatrix(Diagonal)
Debug ""
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; <<<<< END OF DEMONSTRATION <<<<<"
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Je trouve ça très bizarre que vous ayez un message d'erreur du genre : Too complex expression ( out of cpu registers ) , please split it.; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Random Matrix
[-1.285, 0.007, -5.576, 8.609, 7.069]
[4.991, 4.626, 8.026, 2.711, 2.014]
[-4.016, 7.819, 5.443, -0.306, -8.743]
[-8.276, -1.899, -7.180, 4.653, -4.687]
[8.080, -2.471, 4.455, 5.375, 3.780]
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Random Matrix Diagonal
[-1.285]
[4.626]
[5.443]
[4.653]
[3.780]
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< END OF DEMONSTRATION <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Mais par curiosité, sur quelle machine exécutez-vous le code de démonstration, quel version de PB ?
A+
Guimauve
Dernière modification par Guimauve le jeu. 18/août/2011 17:02, modifié 1 fois.
Re: Système de Calculs Matriciels général (V0.9.7)
ca le fait toujours, même avec la petite correction que tu as faites.
J'ai PB 4.60beta3 x86 sur un win7 64bit
C'est une erreur de macro.
J'ai PB 4.60beta3 x86 sur un win7 64bit
C'est une erreur de macro.
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel
)
Mon site : CeriseCode (Attention Chantier perpétuel

Re: Système de Calculs Matriciels général (V0.9.7)
Et c'est la seule commande qui bogue ?
Edit :
Tiens j'ai une idée, fait un autre essai avec ce code :
Et dit moi ce qui ce passe.
Merci à l'avance.
A+
Guimauve
Edit :
Tiens j'ai une idée, fait un autre essai avec ce code :
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The ExtractMatrixDiagonal Operator <<<<<
Procedure ExtractMatrixDiagonal(*Diagonal.Matrix, *MatrixA.Matrix)
MinValue(Min.u, GetMatrixLine(*MatrixA), GetMatrixRow(*MatrixA))
CreateNewMatrix(*Diagonal, Min, 1, "ExtractMatrixDiagonal()")
For PivotID = 0 To Min - 1
Element.d = Private_GetMatrixElement(*MatrixA, PivotID, PivotID)
Debug Element
Private_SetMatrixElement(*Diagonal, PivotID, 0, Element)
Next
EndProcedure
Merci à l'avance.
A+
Guimauve
Re: Système de Calculs Matriciels général (V0.9.7)
Toujours pareil , Linux x86 , pb 4.51
Re: Système de Calculs Matriciels général (V0.9.7)
J'ai bien l'impression qu'il s'agit d'un problème avec les pointeurs désignés par les variables de type Integer (*.i) qui semblent être mal interprété par PB x32 tournant sur une machine x64.
Présentement, je n'arrive pas reproduire le bogue mentionné. Je mets une version minimale avec la commande qui semble problématique. Ce que j'aimerais savoir c'est quelle Macro qui bogue parce que là, cela défie toute logique. Je ne comprends pas ce qui se passe.
Je vais si je peux reproduire le problème.
A+
Guimauve
Présentement, je n'arrive pas reproduire le bogue mentionné. Je mets une version minimale avec la commande qui semble problématique. Ce que j'aimerais savoir c'est quelle Macro qui bogue parce que là, cela défie toute logique. Je ne comprends pas ce qui se passe.
Code : Tout sélectionner
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Minimum of two Values
Macro MinValue(P_Min, P_Value01, P_Value02)
P_Min = P_Value01
If P_Value02 < P_Min
P_Min = P_Value02
EndIf
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Random Min Max Real (Float or Double)
Macro RandomMinMaxReal(Min, Max, Resolution = 10000)
((Min) + ((Max) - (Min)) * Random(Resolution) / (Resolution))
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; NewLongVector
Macro NewLongVector(ElementCount)
AllocateMemory((ElementCount) * SizeOf(Long))
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; DeleteLongVector
Macro DeleteLongVector(StartPtr)
If StartPtr <> #Null
FreeMemory(StartPtr)
EndIf
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; ReachLongVectorElement
Macro ReachLongVectorElement(StartPtr, Index)
(StartPtr + Index * SizeOf(Long))
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; SetLongVectorElement
Macro SetLongVectorElement(StartPtr, Index, Value)
PokeL(ReachLongVectorElement(StartPtr, Index), Value)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; GetLongVectorElement
Macro GetLongVectorElement(StartPtr, Index)
PeekL(ReachLongVectorElement(StartPtr, Index))
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Structure declaration <<<<<
Structure Matrix
Line.u
Row.u
Size.q
Elements.i
EndStructure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The observators <<<<<
Macro GetMatrixLine(MatrixA)
MatrixA\Line
EndMacro
Macro GetMatrixRow(MatrixA)
MatrixA\Row
EndMacro
Macro GetMatrixSize(MatrixA)
MatrixA\Size
EndMacro
Macro GetMatrixElements(MatrixA)
MatrixA\Elements
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The mutators <<<<<
Macro SetMatrixLine(MatrixA, P_Line)
GetMatrixLine(MatrixA) = P_Line
EndMacro
Macro SetMatrixRow(MatrixA, P_Row)
GetMatrixRow(MatrixA) = P_Row
EndMacro
Macro SetMatrixSize(MatrixA, P_Size)
GetMatrixSize(MatrixA) = P_Size
EndMacro
Macro SetMatrixElements(MatrixA, P_Elements)
GetMatrixElements(MatrixA) = P_Elements
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Complentemary Macros for Datas <<<<<
Macro ReachMatrixElement(MatrixA, OffsetID)
(GetMatrixElements(MatrixA) + OffsetID * SizeOf(Double))
EndMacro
Macro AllocateMatrixElementsMemory(MatrixA)
SetMatrixElements(MatrixA, AllocateMemory(GetMatrixSize(MatrixA) * SizeOf(Double)))
EndMacro
Macro MemoryMatrixElementsSize(MatrixA)
MemorySize(GetMatrixElements(MatrixA))
EndMacro
Macro LastMatrixElements(MatrixA)
((MemorySize(GetMatrixElements(MatrixA)) / SizeOf(Double)) - 1)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The Reset operator <<<<<
Macro ResetMatrix(MatrixA)
SetMatrixLine(MatrixA, 0)
SetMatrixRow(MatrixA, 0)
SetMatrixSize(MatrixA, 0)
If GetMatrixElements(MatrixA) <> #Null
FreeMemory(GetMatrixElements(MatrixA))
SetMatrixElements(MatrixA, 0)
EndIf
; ClearStructure(MatrixA, Matrix)
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The Copy Operator : A = Source : B = Destination <<<<<
Macro CopyMatrix(MatrixA, MatrixB)
SetMatrixLine(MatrixB, GetMatrixLine(MatrixA))
SetMatrixRow(MatrixB, GetMatrixRow(MatrixA))
SetMatrixSize(MatrixB, GetMatrixSize(MatrixA))
If GetMatrixElements(MatrixB) <> #Null
FreeMemory(GetMatrixElements(MatrixB))
EndIf
AllocateMatrixElementsMemory(MatrixB)
If GetMatrixElements(MatrixB) <> #Null
CopyMemory(GetMatrixElements(MatrixA), GetMatrixElements(MatrixB), MemorySize(GetMatrixElements(MatrixA)))
EndIf
EndMacro
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The Offset 2D to 1D calculation <<<<<
Procedure.q CalulateOffset1D(RowMax.u, LineID.u, RowID.u)
If LineID = 0 And RowID = 0
Offset1D.q = 0
ElseIf RowID > 0
Offset1D = RowID + LineID * RowMax
ElseIf LineID > 0
Offset1D = LineID * RowMax
EndIf
ProcedureReturn Offset1D
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Matrix Element Mutator <<<<<
Macro Private_SetMatrixElement(MatrixA, P_Line, P_Row, P_Element)
PokeD(ReachMatrixElement(MatrixA, CalulateOffset1D(GetMatrixRow(MatrixA), P_Line, P_Row)), P_Element)
EndMacro
Procedure SetMatrixElement(*MatrixA.Matrix, P_Line.u, P_Row.u, P_Element.d)
If P_Line <= GetMatrixLine(*MatrixA) - 1 And P_Row <= GetMatrixRow(*MatrixA) - 1
Private_SetMatrixElement(*MatrixA, P_Line, P_Row, P_Element)
EndIf
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Matrix Element Observator <<<<<
Macro Private_GetMatrixElement(MatrixA, P_Line, P_Row)
PeekD(ReachMatrixElement(MatrixA, CalulateOffset1D(GetMatrixRow(MatrixA), P_Line, P_Row)))
EndMacro
Procedure.d GetMatrixElement(*MatrixA.Matrix, P_Line.u, P_Row.u)
If P_Line <= GetMatrixLine(*MatrixA) - 1 And P_Row <= GetMatrixRow(*MatrixA) - 1
P_Element.d = Private_GetMatrixElement(*MatrixA, P_Line, P_Row)
EndIf
ProcedureReturn P_Element
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The CreateNewMatrix Operator <<<<<
Procedure CreateNewMatrix(*MatrixA.Matrix, P_Line.u, P_Row.u, CreatorCommand.s = "CreateNewMatrix()")
If P_Line < 1
P_Line = 1
EndIf
If P_Row < 1
P_Row = 1
EndIf
If GetMatrixElements(*MatrixA) <> #Null
ResetMatrix(*MatrixA)
EndIf
SetMatrixLine(*MatrixA, P_Line)
SetMatrixRow(*MatrixA, P_Row)
SetMatrixSize(*MatrixA, GetMatrixLine(*MatrixA) * GetMatrixRow(*MatrixA))
AllocateMatrixElementsMemory(*MatrixA)
If GetMatrixElements(*MatrixA) = #Null
MessageRequester("Fatal Error", CreatorCommand + " - Impossible To Allocate Memory !")
End
EndIf
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The ZeroMatrix Operator <<<<<
Procedure ZeroMatrix(*MatrixA.Matrix, P_Line.u, P_Row.u)
CreateNewMatrix(*MatrixA, P_Line, P_Row, "ZeroMatrix()")
For OffsetID = 0 To GetMatrixSize(*MatrixA) - 1
PokeD(ReachMatrixElement(*MatrixA, OffsetID), 0.0)
Next
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The OneMatrix Operator <<<<<
Procedure OneMatrix(*MatrixA.Matrix, P_Line.u, P_Row.u)
CreateNewMatrix(*MatrixA, P_Line, P_Row, "OneMatrix()")
For OffsetID = 0 To GetMatrixSize(*MatrixA) - 1
PokeD(ReachMatrixElement(*MatrixA, OffsetID), 1.0)
Next
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The RandomMatrix Operator <<<<<
Procedure RandomMatrix(*MatrixA.Matrix, P_Line.u, P_Row.u, P_Min.d, P_Max.d, P_Resolution.l = 10000)
CreateNewMatrix(*MatrixA, P_Line, P_Row, "RandomMatrix()")
For OffsetID = 0 To GetMatrixSize(*MatrixA) - 1
PokeD(ReachMatrixElement(*MatrixA, OffsetID), RandomMinMaxReal(P_Min, P_Max, P_Resolution))
Next
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< The ExtractMatrixDiagonal Operator <<<<<
Procedure ExtractMatrixDiagonal(*Diagonal.Matrix, *MatrixA.Matrix)
;MinValue(Min.u, GetMatrixLine(*MatrixA), GetMatrixRow(*MatrixA))
Min = GetMatrixLine(*MatrixA)
If GetMatrixRow(*MatrixA) < P_Min
Min = GetMatrixRow(*MatrixA)
EndIf
ZeroMatrix(*Diagonal, Min, 1)
For PivotID = 0 To Min - 1
Element.d = Private_GetMatrixElement(*MatrixA, PivotID, PivotID)
Debug Element
Private_SetMatrixElement(*Diagonal, PivotID, 0, Element)
Next
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur DebugMatrix <<<<<
Procedure DebugMatrix(*MatrixA.Matrix, P_Decimal.b = 3)
For LineID = 0 To GetMatrixLine(*MatrixA) - 1
For RowID = 0 To GetMatrixRow(*MatrixA) - 1
Line.s = Line + StrD(Private_GetMatrixElement(*MatrixA, LineID, RowID), P_Decimal)
If RowID < GetMatrixRow(*MatrixA) - 1
Line + ", "
EndIf
Next
Debug "[" + Line + "]"
Line = ""
Next
EndProcedure
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< !!! WARNING - YOU ARE NOW IN A TESTING ZONE - WARNING !!! <<<<<
; <<<<< !!! WARNING - THIS CODE SHOULD BE COMMENTED - WARNING !!! <<<<<
; <<<<< !!! WARNING - BEFORE THE FINAL COMPILATION. - WARNING !!! <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Random Matrix"
RandomMatrix(RandomMatrix.Matrix, 5, 5, -9.0, 9.0)
DebugMatrix(RandomMatrix)
Debug ""
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; Random Matrix Diagonal"
ExtractMatrixDiagonal(Diagonal.Matrix, RandomMatrix)
DebugMatrix(Diagonal)
Debug ""
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
Debug "; <<<<< END OF DEMONSTRATION <<<<<"
Debug "; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
; <<<<<<<<<<<<<<<<<<<<<<<
; <<<<< END OF FILE <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<
A+
Guimauve
Dernière modification par Guimauve le jeu. 18/août/2011 19:08, modifié 1 fois.
Re: Système de Calculs Matriciels général (V0.9.7)
Le code s'affiche correctement avec Firefox 6.0 et le PureBasic Forum Code de Erix14 1.6.0.2, c'est quoi le problème ?G-Rom a écrit :utilise pastebin pour tes codes , le topic est devenu illisible.![]()
http://pastebin.com/
A+ (peut-être)
Guimauve
Re: Système de Calculs Matriciels général (V0.9.7)
Bon j'en ai marre... Les fichiers se trouvent à l'adresse suivante : http://pages.videotron.com/gsaumure/Maths_Matrix.zip
J'ai envoyé un message à Fred à ce sujet, j'attends une réponse. J'espère que vous êtes sûr qu'il s'agit bel et bien d'un bogue. Présentement, je n'ai pas vraiment le temps de pousser l'investigation plus loin. Il me reste les courbes de Bézier à segment multiple, les courbes B-Spline à segment unique et à segment multiple et les courbes NURBS à segment unique et à segment multiple à programmer. Ensuite, je passe aux surfaces donc j'ai pas vraiment le temps de chercher le pourquoi que de mon coté tout fonctionne et que du vôtre ça fonctionne pas.
A+
Guimauve
J'ai envoyé un message à Fred à ce sujet, j'attends une réponse. J'espère que vous êtes sûr qu'il s'agit bel et bien d'un bogue. Présentement, je n'ai pas vraiment le temps de pousser l'investigation plus loin. Il me reste les courbes de Bézier à segment multiple, les courbes B-Spline à segment unique et à segment multiple et les courbes NURBS à segment unique et à segment multiple à programmer. Ensuite, je passe aux surfaces donc j'ai pas vraiment le temps de chercher le pourquoi que de mon coté tout fonctionne et que du vôtre ça fonctionne pas.
A+
Guimauve
Re: Système de Calculs Matriciels général (V0.9.7)
j'ai 1 km d'ascenseur à descendre pour avoir le code , pastebin est spécialisé dans le code justement.Guimauve a écrit :Le code s'affiche correctement avec Firefox 6.0 et le PureBasic Forum Code de Erix14 1.6.0.2, c'est quoi le problème ?G-Rom a écrit :utilise pastebin pour tes codes , le topic est devenu illisible.![]()
http://pastebin.com/
A+ (peut-être)
Guimauve
Te suicide pas pour ci peuGuimauve a écrit : A+ (peut-être)
Guimauve

Le pb viens peu être du fait que tu as un x64 et nous un x86 ?
Re: Système de Calculs Matriciels général (V0.9.7)
Ça n'a plus tellement d'importance puisque de toute façon, je donne un liens pour télécharger les fichiers les plus récents. C'est-à-dire ceux de la version 0.9.9.
Avec ça, plus d'histoire d'ascenseur de 99X10^6 km de long.
A+
Guimauve
Avec ça, plus d'histoire d'ascenseur de 99X10^6 km de long.
A+
Guimauve