vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Geschwindigkeitsverlust durch Klasse? 
Autor: DerBrain
Datum: 15.04.13 11:06

Ich würde sagen "ganz normal", oder anderst gesagt: nicht anderst wie zuvor die shared-Methoden. Hab da jeweils nur des shared wegemacht...
Die Operatoren sehen so aus:
    Public Shared Operator -(ByVal oMinuend As Vector, oSubtrahend As Vector) _
      As Vector
        If Not Variables.sameDimension(oMinuend, oSubtrahend) Then _
            Throw New RankException("Dimension von Summand1 und Summand2 muss" & _
            "gleich sein, war jedoch " & oMinuend.getDimension() & " und " & _
            oSubtrahend.getDimension() & ".")
        Dim dimension As Integer = oMinuend.getDimension()
        Dim sum(0 To dimension - 1) As Double
        For i = 0 To dimension - 1
            sum(i) = oMinuend.mData(i) - oSubtrahend.mData(i)
        Next
        Return New Vector(sum)
    End Operator
 
    Public Shared Operator *(ByVal dSkalar As Double, ByVal oVector As Vector) _
      As Vector
        Dim dimension As Integer = oVector.getDimension()
        Dim retval(0 To dimension - 1) As Double
        For i = 0 To dimension - 1
            retval(i) = dSkalar * oVector.mData(i)
        Next
        Return New Vector(retval)
    End Operator
 
    Public Shared Operator *(ByVal dSkalar As Integer, ByVal oVector As Vector) _
      As Vector
        Dim dimension As Integer = oVector.getDimension()
        Dim retval(0 To dimension - 1) As Double
        For i = 0 To dimension - 1
            retval(i) = dSkalar * oVector.mData(i)
        Next
        Return New Vector(retval)
    End Operator
 
    Public Shared Operator ^(ByVal oVector1 As Vector, oVector2 As Vector) As _
      Vector
        If Not Variables.sameDimension(oVector1, oVector2, 3) Then _
            Throw New RankException("Die Dimensionen von oVector1 und oVector2" & _
            "müssen 3 sein, waren jedoch " & oVector1.getDimension() & " und " _
            & oVector2.getDimension() & ".")
 
        Dim retval(0 To 2) As Double
 
        For i = 0 To 2
            retval(i) = oVector1.mData((i + 1) Mod 3) * oVector2.mData((i + 2) _
              Mod 3) - oVector1.mData((i + 2) Mod 3) * oVector2.mData((i + 1) _
              Mod 3)
        Next
 
        Return New Vector(retval)
    End Operator
 
    Public Shared Operator +(ByVal oSummand1 As Vector, ByVal oSummand2 As _
      Vector) As Vector
        If Not Variables.sameDimension(oSummand1, oSummand2) Then _
            Throw New RankException("Dimension von Summand1 und Summand2 muss" & _
            "gleich sein, war jedoch " & oSummand1.getDimension() & " und " & _
            oSummand2.getDimension() & ".")
        Dim dimension As Integer = oSummand1.getDimension()
        Dim sum(0 To dimension - 1) As Double
        For i = 0 To dimension - 1
            sum(i) = oSummand1.mData(i) + oSummand2.mData(i)
        Next
        Return New Vector(sum)
    End Operator
Die Methode sameDimension macht noch das:
    Public Shared Function sameDimension(oGemetry1 As Geometry, oGemetry2 As _
      Geometry) As Boolean
        If (IsNothing(oGemetry1) Xor IsNothing(oGemetry2)) Then _
            Return False
        If IsNothing(oGemetry1) Then _
            Return True
 
        Return (oGemetry1.getDimension() = oGemetry2.getDimension())
    End Function
Sollten aber alles keine Performenzfresser sein...
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Geschwindigkeitsverlust durch Klasse?1.505DerBrain15.04.13 10:22
Re: Geschwindigkeitsverlust durch Klasse?800Manfred X15.04.13 10:35
Re: Geschwindigkeitsverlust durch Klasse?808DerBrain15.04.13 10:44
Re: Geschwindigkeitsverlust durch Klasse?783Manfred X15.04.13 10:59
Re: Geschwindigkeitsverlust durch Klasse?906DerBrain15.04.13 11:06
Re: Geschwindigkeitsverlust durch Klasse?795Manfred X15.04.13 11:30
Re: Geschwindigkeitsverlust durch Klasse?778Preisser15.04.13 13:44
Re: Geschwindigkeitsverlust durch Klasse?814DerBrain16.04.13 09:09
Re: Geschwindigkeitsverlust durch Klasse?744Manfred X16.04.13 09:20
Kleines Beispiel790Manfred X16.04.13 10:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel