- Contents in this wiki are for entertainment purposes only
QAT Code: The Pairs Expansion Method
About ∞ White paper ∞ QuasiMatrix Code ∞ QAT Code ∞ Data Examples ∞ Scatter-Gather Explained ∞ The Plow Share ∞
The Warehouse if Pairs Expansion then Visual Scatter else Visual Cluster redim Bracketing Clusters while Event Chemistry wend SLIP class redim
About ∞ White paper ∞ QuasiMatrix Code ∞ QAT Code ∞ Data Examples ∞ Scatter-Gather Explained ∞ The Plow Share ∞
The Warehouse if Pairs Expansion then Visual Scatter else Visual Cluster redim Bracketing Clusters while Event Chemistry wend SLIP class redim
Public Function ExpandPairs() As Boolean
' Create the pair-combinations of all the Atoms that DO HAVE shared conjectural-regularity. Dim ndx As Long Dim strField() As String 'array Dim strPairs As String Dim strJoin As String Dim varX As Variant ' Pairs format (Sorted): ' Atom1 ** Atom2 CR Atom3 ** Atom 4 CR, ... On Error GoTo trap If mtWh.State >= enumWhStates.ExtractedKeychains Then Set mtWh.colPairs = New Collection With New clsStopWatch If mtWh.State >= Loaded Then ' Create the paired-combinations of Atoms sharing Links. ' Enumerate atoms, creating a tabulation by string-concatenation ' of any new combinatrics joined from the array returned by the ' transform method producing combinatorics. RaiseEvent Progress("Pairs combination-expansion beginning...") ndx = 0 For Each varX In mtWh.colAtomsKeychain strJoin = Join(Combinatorics(varX), "**") If Len(strJoin) Then strPairs = Join(Array(strPairs, strJoin), Me.DataDelimRow) ' future: this needs checked for delay End If If ndx Mod 2 = 0 Then RaiseEvent Progress("Expanding - (" & CStr(ndx) & ")...") DoEvents End If ndx = ndx + 1 Next RaiseEvent Console("Pairs expanded. [" & CStr(.Elapsed) & " msec]") .Reset ' timer ' Store the Pairs tabular string data as a string array. mtWh.Pairs = Split(strPairs, Me.DataDelimRow) mtWh.PairsCount = UBound(mtWh.Pairs) + 1 ' Sort the new Pairs array. QuickSortVariants mtWh.Pairs, 1, UBound(mtWh.Pairs), 1, UBound(mtWh.Pairs) RaiseEvent Console(CStr(mtWh.PairsCount) & " Pairs sorted. [" & CStr(.Elapsed) & " msec]") RaiseEvent Progress("") mtWh.State = enumWhStates.ExpandedPairs ExpandPairs = True RaiseEvent Console(CStr(mtWh.PairsCount) & " Pairs expanded. [" & CStr(.Elapsed) & " msec]") End If End With Else RaiseEvent Console("clsWhse.ExpandPairs: Failure: The Atoms Keychain has not been extracted.") End If ' mtWh.State >= enumWhStates.ExtractedKeychains Exit Function
ExitPoint:
RaiseEvent Progress("")
Exit Function
trap:
RaiseEvent Console("clsWhse.ExpandPairs: " & Err.Source & " Error(" & CStr(Err.Number) & "): '" & CStr(Err.Description) & "'") Resume ExitPoint Resume
End Function