RbBFBlokProjPSIVStrn2006.01 ACnmStrnAChpStrnACsvStrnVer1Strn1 Ver2Strn0 Ver3Strn0 RelsStrn0 NnRlStrn0 RegnStrnSVerStrnLVerStrnIVerStrnaiviInt DVewInt ?prTpInt DLanInt CLanInt DEncInt BflgInt IconGrupEndGInt MacCStrnBMacStrnMy Application (Classic)BCarStrnMy Application BCMOStrnMy Application BSizInt @BMSzInt BSzSStrn4096BMSSStrn2048MDIcStrnBWinStrnMy Application.exe BMDIInt WcmNStrnWpNmStrnWiNmStrnBL86Strn MyApplication PadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObj~NameStrnApp ContInt paswStrnbClsInt SuprStrn Application bNtrInt bApOInt CompStrnPDefGrup$nameStrnMenuBar PValInt U]EndGInt VwBhGrupEndGInt CnstGrupEncoInt nameStrnkFileQuitShortcut typeInt defnStrnflagInt CInsGrup0pltfInt langInt defnStrnCmd+Q EndGInt EndGInt CnstGrupEncoInt nameStrn kFileQuit typeInt defnStrnQuitflagInt CInsGrup0pltfInt langInt defnStrnE&xit EndGInt CInsGrup0pltfInt langInt defnStrnE&xit EndGInt EndGInt CnstGrupEncoInt nameStrn kEditClear typeInt defnStrn&Delete flagInt CInsGrup0pltfInt langInt defnStrn&Delete EndGInt CInsGrup0pltfInt langInt defnStrn&Delete EndGInt EndGInt PadnPadnd****************************************************************************************************BlokpVew?(NameStrn DemoWindow ContInt paswStrnbClsInt SuprStrnWindow bNtrInt CompStrnPDefGrup0nameStrnMenuBar PValStrn 1432205311 EndGInt PDefGrup(nameStrn MacProcID PValInt EndGInt PDefGrup4nameStrn BalloonHelp EncoInt PValStrnEndGInt PDefGrup0nameStrnMinimizeButton PValStrnTrueEndGInt PDefGrup4nameStrnMaximizeButton PValStrnFalse EndGInt PDefGrup0nameStrn LiveResize PValStrnFalse EndGInt PDefGrup0nameStrn Resizeable PValStrnFalse EndGInt PDefGrup,nameStrn CloseButton PValStrnTrueEndGInt PDefGrup0nameStrnMenuBarVisible PValStrnTrueEndGInt PDefGrup0nameStrn FullScreen PValStrnFalse EndGInt PDefGrup(nameStrnVisible PValStrnTrueEndGInt PDefGrup8nameStrnTitle EncoInt PValStrnUntitledEndGInt PDefGrup$nameStrnBackdropPValStrnEndGInt PDefGrup(nameStrn BackColor PValInt EndGInt PDefGrup0nameStrn HasBackColorPValStrnFalse EndGInt PDefGrup0nameStrn Composite PValStrnFalse EndGInt PDefGrup$nameStrnFrame PValInt EndGInt PDefGrup(nameStrn MaxHeight PValInt }EndGInt PDefGrup$nameStrnMaxWidthPValInt }EndGInt PDefGrup(nameStrn MinHeight PValInt @EndGInt PDefGrup$nameStrnMinWidthPValInt @EndGInt PDefGrup$nameStrnHeight PValInt ,EndGInt PDefGrup$nameStrnWidth PValInt ,EndGInt PDefGrup(nameStrn Placement PValInt EndGInt VwBhGrup lVwPrGrup0NameStrnNameVsblInt PrGpStrnID EndGInt VwPrGrup8NameStrn Interfaces VsblInt PrGpStrnID EndGInt VwPrGrup4NameStrnSuper VsblInt PrGpStrnID EndGInt VwPrGrupLNameStrn Placement VsblInt PrGpStrnPositionPValStrn0 EndGInt VwPrGrupHNameStrnWidth VsblInt PrGpStrnPositionPValStrn300 EndGInt VwPrGrupHNameStrnHeight VsblInt PrGpStrnPositionPValStrn300 EndGInt VwPrGrupHNameStrnMinWidthVsblInt PrGpStrnPositionPValStrn64 EndGInt VwPrGrupLNameStrn MinHeight VsblInt PrGpStrnPositionPValStrn64 EndGInt VwPrGrupLNameStrnMaxWidthVsblInt PrGpStrnPositionPValStrn32000 EndGInt VwPrGrupPNameStrn MaxHeight VsblInt PrGpStrnPositionPValStrn32000 EndGInt VwPrGrupLNameStrnFrame VsblInt PrGpStrn Appearance PValStrn0 EndGInt VwPrGrupTNameStrn Composite VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrn HasBackColorVsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrn BackColor VsblInt PrGpStrn Appearance PValStrn&hFFFFFFEndGInt VwPrGrup<NameStrnBackdropVsblInt PrGpStrn Appearance EndGInt VwPrGrupPNameStrnTitle VsblInt PrGpStrn Appearance PValStrnUntitledEndGInt VwPrGrupLNameStrnVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt VwPrGrupTNameStrn FullScreen VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrnMenuBarVisible VsblInt PrGpStrn Appearance PValStrnTrueEndGInt VwPrGrupPNameStrn CloseButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt VwPrGrupTNameStrn Resizeable VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrn LiveResize VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupXNameStrnMaximizeButton VsblInt PrGpStrn Appearance PValStrnFalse EndGInt VwPrGrupTNameStrnMinimizeButton VsblInt PrGpStrn Appearance PValStrnTrueEndGInt VwPrGrup@NameStrn BalloonHelp VsblInt PrGpStrn Appearance EndGInt VwPrGrupPNameStrn MacProcID VsblInt PrGpStrn Appearance PValStrn0 EndGInt VwPrGrup< NameStrnMenuBar VsblInt PrGpStrn Appearance EndGInt  EndGInt CBhvGrup SuprStrnListBox EndGInt  CBhvGrup SuprStrn PushButton HInsGruph nameStrnAction CompStrnVsblInt sorcGrup  EncoInt srclStrn Sub Action()srclStrn9MersenneTwister.InitByArray( &h123, &h234, &h345, &h456 ) srclStrnsrclStrn"ListBox1.AddRow( "int32 outputs" ) srclStrnsrclStrnfor i as Integer = 0 to 999 srclStrnHListBox1.AddRow( Format( MersenneTwister.RandInt32, "##############" ) )srclStrnnext i srclStrnsrclStrn"ListBox1.AddRow( "real2 outputs" ) srclStrnsrclStrnfor i as Integer = 0 to 999 srclStrn3ListBox1.AddRow( Str( MersenneTwister.RandReal2 ) ) srclStrnnext i srclStrnEnd Sub EndGInt  EndGInt  EndGInt  CtrlGrup XcclsStrnListBox nameStrnListBox PDefGrup8nameStrn InitialParent EncoInt PValStrnEndGInt PDefGrup4nameStrn DataField EncoInt PValStrnEndGInt PDefGrup4nameStrn DataSource EncoInt PValStrnEndGInt PDefGrup,nameStrnColumnsResizablePValStrnEndGInt PDefGrup,nameStrn SelectionType PValInt EndGInt PDefGrup0nameStrnRequiresSelection PValStrnEndGInt PDefGrup0nameStrnEnableDragReorder PValStrnEndGInt PDefGrup(nameStrn EnableDrag PValStrnEndGInt PDefGrup(nameStrn HierarchicalPValStrnEndGInt PDefGrup(nameStrn Underline PValStrnEndGInt PDefGrup$nameStrnItalic PValStrnEndGInt PDefGrup nameStrnBoldPValStrnEndGInt PDefGrup$nameStrnTextSizePValInt EndGInt PDefGrup8nameStrnTextFontEncoInt PValStrnSystem EndGInt PDefGrup,nameStrnDefaultRowHeightPValInt EndGInt PDefGrup0nameStrnGridLinesVertical PValInt EndGInt PDefGrup0nameStrnGridLinesHorizontal PValInt EndGInt PDefGrup4 nameStrnScrollBarVertical PValStrnTrueEndGInt  PDefGrup0!nameStrnScrollbarHorizontal PValStrnEndGInt !PDefGrup("nameStrn HeadingIndexPValInt EndGInt "PDefGrup4#nameStrn InitialValueEncoInt PValStrnEndGInt #PDefGrup,$nameStrn UseFocusRingPValStrnTrueEndGInt $PDefGrup(%nameStrn HasHeading PValStrnEndGInt %PDefGrup4&nameStrn ColumnWidthsEncoInt PValStrnEndGInt &PDefGrup('nameStrn ColumnCount PValInt EndGInt 'PDefGrup((nameStrnEnabled PValStrnTrueEndGInt (PDefGrup0)nameStrnAutoDeactivate PValStrnTrueEndGInt )PDefGrup0*nameStrnHelpTag EncoInt PValStrnEndGInt *PDefGrup(+nameStrnVisible PValStrnTrueEndGInt +PDefGrup,,nameStrn TabPanelIndex PValInt EndGInt ,PDefGrup(-nameStrn LockBottom PValStrnEndGInt -PDefGrup(.nameStrn LockRight PValStrnEndGInt .PDefGrup$/nameStrnLockTop PValStrnEndGInt /PDefGrup$0nameStrnLockLeftPValStrnEndGInt 0PDefGrup$1nameStrnHeight PValInt EndGInt 1PDefGrup$2nameStrnWidth PValInt EndGInt 2PDefGrup 3nameStrnTop PValInt EndGInt 3PDefGrup 4nameStrnLeftPValInt EndGInt 4PDefGrup85nameStrn ControlOrderEncoInt PValStrn0 EndGInt 5PDefGrup86nameStrnSuper EncoInt PValStrnListBox EndGInt 6PDefGrup$7nameStrnIndex PValInt EndGInt 7PDefGrup48nameStrnNameEncoInt PValStrnListBox1EndGInt 8CBixInt EndGInt CtrlGrup9cclsStrn PushButton nameStrn PushButton PDefGrup8:nameStrn InitialParent EncoInt PValStrnEndGInt :PDefGrup(;nameStrn Underline PValStrnEndGInt ;PDefGrup$nameStrnTextSizePValInt EndGInt >PDefGrup8?nameStrnTextFontEncoInt PValStrnSystem EndGInt ?PDefGrup0@nameStrnAutoDeactivate PValStrnTrueEndGInt @PDefGrup0AnameStrnHelpTag EncoInt PValStrnEndGInt APDefGrup(BnameStrnVisible PValStrnTrueEndGInt BPDefGrup(CnameStrnEnabled PValStrnTrueEndGInt CPDefGrup$DnameStrnCancel PValStrnEndGInt DPDefGrup$EnameStrnDefault PValStrnEndGInt EPDefGrup8FnameStrnCaption EncoInt PValStrnUntitledEndGInt FPDefGrup,GnameStrn TabPanelIndex PValInt EndGInt GPDefGrup(HnameStrn LockBottom PValStrnEndGInt HPDefGrup(InameStrn LockRight PValStrnEndGInt IPDefGrup$JnameStrnLockTop PValStrnEndGInt JPDefGrup$KnameStrnLockLeftPValStrnEndGInt KPDefGrup$LnameStrnHeight PValInt EndGInt LPDefGrup$MnameStrnWidth PValInt PEndGInt MPDefGrup NnameStrnTop PValInt EndGInt NPDefGrup OnameStrnLeftPValInt EndGInt OPDefGrup8PnameStrn ControlOrderEncoInt PValStrn1 EndGInt PPDefGrup<QnameStrnSuper EncoInt PValStrn PushButton EndGInt QPDefGrup$RnameStrnIndex PValInt EndGInt RPDefGrup8SnameStrnNameEncoInt PValStrn PushButton1 EndGInt SCBixInt EndGInt 9PadnPadn,************************************************************************************************************************************************************************************************************************************************************************************************************BlokpMnuU] NameStrnMenuBar1ContInt paswStrnMItmGruppTspmuInt nameStrnFileMenutextStrn&File indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemMItmGrupUspmuInt nameStrnFileQuittextStrn#App.kFileQuit indxInt scutStrn#App.kFileQuitShortcut MiSKStrn#App.kFileQuitShortcut maEnInt EncoInt flagInt SuprStrn QuitMenuItemEndGInt UEndGInt TMItmGrup\VspmuInt nameStrnEditMenutextStrn&Edit indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemMItmGrupWspmuInt nameStrnEditUndotextStrn&Undo indxInt scutStrnCmd+Z MiSKStrnZ MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt WMItmGrupXspmuInt nameStrn UntitledMenu1 textStrn- indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt XMItmGrupYspmuInt nameStrnEditCut textStrnCu&tindxInt scutStrnCmd+X MiSKStrnX MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt YMItmGrupZspmuInt nameStrnEditCopytextStrn&Copy indxInt scutStrnCmd+C MiSKStrnC MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt ZMItmGrup[spmuInt nameStrn EditPaste textStrn&Paste indxInt scutStrnCmd+V MiSKStrnV MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt [MItmGrup\spmuInt nameStrn EditClear textStrn#App.kEditClear indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt \MItmGrup]spmuInt nameStrn UntitledMenu0 textStrn- indxInt scutStrnmaEnInt EncoInt flagInt SuprStrnMenuItemEndGInt ]MItmGrup^spmuInt nameStrn EditSelectAll textStrn Select &All indxInt scutStrnCmd+A MiSKStrnA MiMkInt maEnInt EncoInt flagInt SuprStrnMenuItemEndGInt ^EndGInt VPadnPadn****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObjoG(NameStrnMersenneTwister ContInt paswStrnbClsInt bNtrInt CompStrnMethGrup|_nameStrn init_genrandCompStrnVsblInt sorcGrup`EncoInt srclStrnSub init_genrand(s as UInt32) srclStrn)mt( 0 ) = Bitwise.BitAnd( s, &hffffffff ) srclStrnsrclStrnfor mti = 1 to N - 1srclStrn5// See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier srclStrn4// In the previous versions, MSBs of the seed affectsrclStrn // only MSBs of the array mt[]. srclStrnlmt( mti ) = (1812433253 * (Bitwise.BitXor( mt( mti - 1 ), (Bitwise.ShiftRight( mt( mti - 1 ), 30 )))) + mti)srclStrnsrclStrn// for >32 bit machinessrclStrn6' I think this is not needed because REALbasic doesn't srclStrn,' have shifting data type sizes like C does.srclStrn4'mt( mti ) = Bitwise.BitAnd( mt( mti ), &hffffffff )srclStrnnext mtisrclStrnEnd Sub EndGInt `EncoInt AlasStrnflagInt !shrdInt parmStrn s as UInt32 rsltStrnEndGInt _MethGrupanameStrn InitByArray CompStrnVsblInt sorcGrupbEncoInt srclStrn.Sub InitByArray(ParamArray init_key as UInt32) srclStrndim i, j, k as Integer srclStrnsrclStrn2dim key_length as Integer = UBound( init_key ) + 1 srclStrnsrclStrninit_genrand( 19650218 )srclStrnsrclStrni = 1 srclStrnj = 0 srclStrn0if N > key_length then k = N else k = key_lengthsrclStrnsrclStrn while k > 0 srclStrnmt( i ) = Bitwise.BitXor( mt( i ), (Bitwise.BitXor( mt( i - 1 ), Bitwise.ShiftRight( mt( i - 1 ), 30 ) ) * 1664525) ) + init_key( j ) + j srclStrnsrclStrn,' Again, I don't think this is needed for RBsrclStrn0'mt( i ) = Bitwise.BitAnd( mt( i ), &hffffffff )srclStrnsrclStrn i = i + 1 srclStrn j = j + 1 srclStrnsrclStrnif i >= N then srclStrnmt( 0 ) = mt( N - 1)srclStrni = 1 srclStrnend if srclStrnsrclStrnif j >= key_length then j = 0 srclStrnsrclStrn k = k - 1 srclStrnwendsrclStrnsrclStrnfor k = N - 1 downto 0 srclStrn|mt( i ) = Bitwise.BitXor( mt( i ), (Bitwise.BitXor( mt( i - 1 ), Bitwise.ShiftRight( mt( i - 1 ), 30 ) ) * 1566083941) ) - isrclStrnsrclStrn,' Again, I don't think this is needed for RBsrclStrn0'mt( i ) = Bitwise.BitAnd( mt( i ), &hffffffff )srclStrnsrclStrn i = i + 1 srclStrnsrclStrnif i >= N then srclStrnmt( 0 ) = mt( N - 1 ) srclStrni = 1 srclStrnend if srclStrnnext k srclStrnsrclStrnAmt( 0 ) = &h80000000 // MSB is 1; assuring non-zero initial array srclStrnEnd Sub EndGInt bEncoInt AlasStrnflagInt shrdInt parmStrnParamArray init_key as UInt32 rsltStrnEndGInt aMethGrupcnameStrn RandInt32 CompStrnVsblInt sorcGruptdEncoInt srclStrnFunction RandInt32() As UInt32 srclStrn7// generates a random number on [0,0xffffffff]-interval srclStrnsrclStrnDim y as UInt32 srclStrnHstatic mag01( 2 ) as UInt32 = Array( UInt32( &h0 ), UInt32( MATRIX_A ) )srclStrnsrclStrnif mti >= N thensrclStrndim kk as Integer srclStrnsrclStrn)// If init_genrand hasn't been called yet srclStrnAif mti = N + 1 then init_genrand( 5489 ) // Use the default seed srclStrnsrclStrnfor kk = 0 to N - M - 1 srclStrngy = Bitwise.BitOr( Bitwise.BitAnd( mt( kk ), UPPER_MASK ), Bitwise.BitAnd( mt( kk + 1 ), LOWER_MASK ) ) srclStrnzmt( kk ) = Bitwise.BitXor( Bitwise.BitXor( mt( kk + M ), Bitwise.ShiftRight( y, 1 ) ), mag01( Bitwise.BitAnd( y, &h1 ) ) ) srclStrnnext kk srclStrnsrclStrnfor kk = kk to N - 1 - 1srclStrngy = Bitwise.BitOr( Bitwise.BitAnd( mt( kk ), UPPER_MASK ), Bitwise.BitAnd( mt( kk + 1 ), LOWER_MASK ) ) srclStrnmt( kk ) = Bitwise.BitXor( Bitwise.BitXor( mt( kk + (M - N) ), Bitwise.ShiftRight( y, 1 ) ), mag01( Bitwise.BitAnd( y, &h1 ) ) )srclStrnnext kk srclStrnsrclStrney = Bitwise.BitOr( Bitwise.BitAnd( mt( N - 1 ), UPPER_MASK ), Bitwise.BitAnd( mt( 0 ), LOWER_MASK ) ) srclStrn|mt( N - 1 ) = Bitwise.BitXOr( Bitwise.BitXor( mt( M - 1 ), Bitwise.ShiftRight( y, 1 ) ), mag01( Bitwise.BitAnd( y, &h1 ) ) )srclStrnsrclStrnmti = 0 srclStrnend if srclStrnsrclStrn y = mt( mti ) srclStrn mti = mti + 1 srclStrnsrclStrn // TemperingsrclStrn4y = Bitwise.BitXor( y, Bitwise.ShiftRight( y, 11 ) )srclStrnPy = Bitwise.BitXor( y, Bitwise.BitAnd( Bitwise.ShiftLeft( y, 7 ), &h9d2c5680 ) )srclStrnQy = Bitwise.BitXor( y, Bitwise.BitAnd( Bitwise.ShiftLeft( y, 15 ), &hefc60000 ) ) srclStrn4y = Bitwise.BitXor( y, Bitwise.ShiftRight( y, 18 ) )srclStrnsrclStrnreturn ysrclStrn End FunctionEndGInt dEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnUInt32 EndGInt cMethGrupxenameStrn RandInt31 CompStrnVsblInt sorcGrupfEncoInt srclStrnFunction RandInt31() As Int32 srclStrn7// generates a random number on [0,0x7fffffff]-interval srclStrnsrclStrn)return Bitwise.ShiftRight( RandInt32, 1 ) srclStrn End FunctionEndGInt fEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnInt32 EndGInt eMethGrupgnameStrn RandReal1 CompStrnVsblInt sorcGruphEncoInt srclStrnFunction RandReal1() As Double srclStrn3// generates a random number on [0,1]-real-interval srclStrnsrclStrn// divided by 2^32-1srclStrn(return RandInt32 * (1.0 / 4294967295.0 )srclStrn End FunctionEndGInt hEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnDouble EndGInt gMethGrupinameStrn RandReal2 CompStrnVsblInt sorcGrupjEncoInt srclStrnFunction RandReal2() As Double srclStrn3// generates a random number on [0,1)-real-interval srclStrnsrclStrn// divided by 2^32 srclStrn'return RandInt32 * (1.0 / 4294967296.0) srclStrn End FunctionEndGInt jEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnDouble EndGInt iMethGrupknameStrn RandReal3 CompStrnVsblInt sorcGrup lEncoInt srclStrnFunction RandReal3() As Double srclStrn3// generates a random number on (0,1)-real-interval srclStrnsrclStrn// divided by 2^32 srclStrnDim d as Double = RandInt32 srclStrn)return ((d + 0.5) * (1.0 / 4294967296.0)) srclStrn End FunctionEndGInt lEncoInt AlasStrnflagInt shrdInt parmStrnrsltStrnDouble EndGInt kMethGrupmnameStrn Rand53Bit CompStrnVsblInt sorcGrupnEncoInt srclStrnFunction Rand53Bit() As Double srclStrn