From 5d5116aaa74b88c739e7e1916aa9b2aa7f46fa14 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Wed, 8 Jan 2025 06:59:28 +0000 Subject: [PATCH] SRM state model fixes --- .../CountingNumber$ASRM_Infinite.class | Bin 0 -> 1589 bytes .../example/CountingNumber$ASRM_Null.class | Bin 0 -> 1564 bytes .../CountingNumber$ASRM_Rightmost.class | Bin 0 -> 1583 bytes .../example/CountingNumber$ASRM_Segment.class | Bin 0 -> 1901 bytes developer/example/CountingNumber.class | Bin 0 -> 2181 bytes developer/example/Example_CountingNumber_0 | 2 + .../example/Example_CountingNumber_0.class | Bin 0 -> 2153 bytes .../example/Example_CountingNumber_0.java | 5 +- developer/example/Example_IndexTree_4x4 | 2 + developer/example/Example_IndexTree_4x4.class | Bin 0 -> 1679 bytes developer/example/Example_IndexTree_4x4.java | 5 +- .../example/Example_IndexTree_Diagonal_SRM | 2 + .../Example_IndexTree_Diagonal_SRM.class | Bin 0 -> 1852 bytes developer/example/Example_SRMI_Array | 2 + developer/example/Example_SRMI_Array.class | Bin 0 -> 2122 bytes developer/example/Example_SRMI_Array.java | 28 +++--- developer/example/Example_SRM_List | 2 + developer/example/Example_SRM_List.class | Bin 0 -> 2095 bytes developer/example/Example_SRM_List.java | 36 +++---- .../example/IndexTree_Diagonal_SRM.class | Bin 0 -> 2988 bytes developer/example/IndexTree_Diagonal_SRM.java | 59 +++++------- .../Ariadne_IndexTree_Child_SRM.java" | 1 + .../javac\360\237\226\211/Ariadne_SRMI.java" | 4 +- .../Ariadne_SRMI_Array.java" | 4 +- .../Ariadne_SRM_List.java" | 90 +++++++++--------- "developer/tool\360\237\226\211/clean" | 13 --- .../tool\360\237\226\211/clean_example" | 24 +++++ "developer/tool\360\237\226\211/make_example" | 19 ++-- 28 files changed, 143 insertions(+), 155 deletions(-) create mode 100644 developer/example/CountingNumber$ASRM_Infinite.class create mode 100644 developer/example/CountingNumber$ASRM_Null.class create mode 100644 developer/example/CountingNumber$ASRM_Rightmost.class create mode 100644 developer/example/CountingNumber$ASRM_Segment.class create mode 100644 developer/example/CountingNumber.class create mode 100755 developer/example/Example_CountingNumber_0 create mode 100644 developer/example/Example_CountingNumber_0.class create mode 100755 developer/example/Example_IndexTree_4x4 create mode 100644 developer/example/Example_IndexTree_4x4.class create mode 100755 developer/example/Example_IndexTree_Diagonal_SRM create mode 100644 developer/example/Example_IndexTree_Diagonal_SRM.class create mode 100755 developer/example/Example_SRMI_Array create mode 100644 developer/example/Example_SRMI_Array.class create mode 100755 developer/example/Example_SRM_List create mode 100644 developer/example/Example_SRM_List.class create mode 100644 developer/example/IndexTree_Diagonal_SRM.class create mode 100755 "developer/tool\360\237\226\211/clean_example" diff --git a/developer/example/CountingNumber$ASRM_Infinite.class b/developer/example/CountingNumber$ASRM_Infinite.class new file mode 100644 index 0000000000000000000000000000000000000000..4ce6eae55fe357dd5f6e5608947288fd760e0018 GIT binary patch literal 1589 zcmbVMO-~b16g_WfJ8c=D@+BbnS+y=H7W9=iGPCyZ8P2{o^NqEHWWT=#k-5;75RAGHWz+ zOVi8wMr~i1(ag^F=ANn_Xu4(zhJaPk>d{$-NUn8bI*cGfGQtXaq0ssvKjx__*UPD` z{X}7 zs33|J-KZMnlT^mkcu5zRevd?p7K|fjks+w&H`KgZSZ7$w{SO6+E8&5HC>}ESOu;FW zvDjbEEaNf5LbqYm174*29g4NzYkZeNW{nap4&*dlH0z?k_p3BBm@|sJy2~kj8oQG| zyG9spw=uPrQkqI+Q&<(F^p=~vCM;nRCRpV9UNb)`l6USz-4aK1h^7l#SGq2d1l{Io zUl+w5zEsasp)?)Z(aJiv8Ybn&nnmUKb=*UrTSwpw61^LJp$7F42(v>ztM5;(>*S;hGeV+K!Xl%&s3i$uzh!Yo;v zY=*oIk$hil>mfPukVq~GvwOfr&bi27;tcEzeP7$~?>+e775?czME>AGUPqpD60*;n zMUQjl5j(OQ{S-qN7&}MbwH9{Q0w3uS`s5)TxjM=-QnD#R(oMy8iplmgK6|jfCN`2G z85Ue@%EkH<7r5UJ_FjbF4eZ0BqttUOIsOG+I=&xi@)MMsM33__*(t2x)!I0f!V1;` F${*u|U>*Pf literal 0 HcmV?d00001 diff --git a/developer/example/CountingNumber$ASRM_Null.class b/developer/example/CountingNumber$ASRM_Null.class new file mode 100644 index 0000000000000000000000000000000000000000..90190a85f14548c9a1cd998bed9c97072d5c78c7 GIT binary patch literal 1564 zcmbVMTTc@~6#k|y-L|ZyQb2BMRg|_U1qB2PXl*o-6foQpeIY|TlqKzKvpY5VpL|e* zl4zpu{wU*_ZGolHM10seGv~~AF5fw`KYxAw4xos~Q3Mb)5Hit)FvDQcZc1gz>RPkD zC!Ddu=EmyoTC-MT2&)6j9h+iEl+Itu#}Gl(K+HrpOtK&HH#}G4vYK1pI}~L_*hNcP zYMCLJ&g?`HM~{JoiOc9^h@bbyz$}J=lINt()j{s5Rb7!vRE3i_(8n--=6_qd%|^p^ zl&GvXgu|6(%V%%PqMSuauIDxccWp`bEm1y@cFnH7%M~1pSEM+RyF}aAmfi4- z3?UtpVXpK)aH2PW8zyez7I|_6uTY!PnZFTqn_>2%VOI8eSuiBiot@3>P{^WPA!AR; zlA<*gTYRrZn%g?nf5sew4E?L`)%ZXk{TJw9)TU< z(uWTGtPdYK#pnJZ@`4X}7J14ms6{}~iyZrgLj)a%k#5^-zuF zOwH7LKdNb;3+k2XfgafVe6ZHud+mMh&tG4^1IXY}5FU8_@EPbsKf_eUYDs0v%1*1k zFYK9(d~Um#Gb>e9x0;HfUscWK%pyZ1d;Xv45CRDL5i&3UgYFOc8=k6hSxN2gABvL3 zu9?zQ>kQs_VlRj=2K|T_xQHQ!@Od@{W-^Rs9g;d%)zlNSvL%(M2s`b^FvIK_|4Z3y zH5!(!M0vL%Y_3d8K7Csf4ZR3plwmT%rLm7-laBdlb5A9@kNqu zreHOkONQWSNQRZ{|8S7R9$YnW4c8fbw%}!kv3TNNBHdtE?lsKT0WS%LXuP|-i9HIL zvC4Egm^Gznk4J&;*XU#@Yn6Cyk5m1$?;QH{q%cf(F?CH;nkHpisH#45NIV@9re8q^d8dO6B#*$3 zaN$E2{=kI~oZ?e|M)r0`K6D|^A}=}xwFU4xIfuR>`f6z87?*x@#g;CH69E`*L+7j+ zboIJw-zQ9T=WV;NzINV`4XXQY2b=0(`;uP}>jt}(@9PxpqmF55m$BmbdsuaR828Cf Xz)N>wJRm!XG#)-4r{1Tr-f#Q{7ZhVe literal 0 HcmV?d00001 diff --git a/developer/example/CountingNumber$ASRM_Segment.class b/developer/example/CountingNumber$ASRM_Segment.class new file mode 100644 index 0000000000000000000000000000000000000000..91da239baa0f53fc5cd2c40db9f99664841f0248 GIT binary patch literal 1901 zcmbVMT~pIQ6g^uCX-mKgf(m|%+7_gW2xt+(S^;ef+R8Ziz%1$7MwHK-Xk%%TT9>5tIMV04haSQ_r22~uF z&|`-kA}1@wT#QbhR565MTJuVUVLWj-XY%lE8RcmeXQUs+;BR!JVMx+*D$e5qr6gWA zc->(b@Oc9XXOim@KBD3hE;Af)T<(euTd&q!!*WQE>AYqc=_i6amPvY-g;q1Ix>bFf zUa)muF~v{2K_wU|TU*xh3$6)Lx)%u*Nu(HJT+@U@6}d(=d6;M|%71#0-8x zAm+(-Bb8~8WTo67aH`;m#9wNqV2a^pyMcO=GW7o; zU2=_FX03{#(&cqiG~1!fH|w<1m$x)tU*l9KTKk(}*&7U}TZ(X?gEG_^1>x4L$||?H zAzWb-B%*P1qnRG{#=5`ZxMGW9Xqujq%e7YpzU4cMxO5+yD$kH2?WXOiOTF_`%;3Fc zh?exK$=!xcsq$uL1P`?B%@cX{@D`gRNn$0dVQb=nF177H_!NxG_9jJ&!f}_pzEPJ= zQ`p%$cN{_DslgXYL6Kp!4K*m)U!6r>l9!rJxx-m`T46P=~ zhRDWJqkCYfPf$M6Dui1!b`cWD;Wmw`H;*BMSz6tpuakZfDZ?D@(kRKs$Vx~k{9cX$ zlBEDi$R}a4BYfn9kBp>t!FJK}p#`50;3L2A^Z(#^HGur>dBICa#=MOVFXn0K+4sJK z{(YR-Lyy01np68Y`wmBcpS$=OSEO1UUZQ;n)4WXY>Qf}JhABJ?xSsZdzUQ51Q{*#? z`+oN0e)i!VjJ9U}JU|j|lEfECxtxzp``FIZKCZWdgSG4QBM9RG#Sp?GmOQ(Rho0@l aBeFx3O^BZ6JdHO|z)F`&Wi4QJ{^SpbJh|2Y literal 0 HcmV?d00001 diff --git a/developer/example/CountingNumber.class b/developer/example/CountingNumber.class new file mode 100644 index 0000000000000000000000000000000000000000..7e2f76befb0907403d5a7e0b306bf0a72efaa8aa GIT binary patch literal 2181 zcmbVO|56)O6#j0YSqKY+AEhmYN?W8!XdAR*6%b32YA}E%5iMGoCB1}glU>Yi9DEUH z{KI$9j-fMl#s~0id;#@4y9+cnb_O!Jx#ygF&v$;@a}NCZ_wRoISjM*r#L!`&)5JN% z75bLlhU42#WxY|`(RBsW)Bd*a?z>gD@`J)$DqnVM*@Ct_*WtC2F7G+PS$3&zTaO)m zv~L#+Ym+4^=60>Jo=sL!ueTklDcn6{77ScgxZG+dbf>5*HSPEbjAB^KUNP~8nC%VCdf~Bws|w@o^b2-n z&#$>25hg-}NfU1hLVt)*Ke}MxhQe4ojGVJ8&!Q8U3L!EkrUjxegs`LYZrs9c16dO@ zcuQfp-3#*3Hr7`ZM%urxgm}lqJEE^_;odcIS2&|)9oV%-O^m#6Voqe8TPuZ)1O*Ew zJ^;(6nRMsrY|p#UKGwx~Mo_b!5;*mL<^JE=qsFrPm>T_g+tFb&maLsBC4+glY*jZcwj22) zVJh7Q!r!wQaq`uZ-lA`npRQT^k$S=^m$m0j&dkgxtiI9-XG;egNFjDW#Ml8Japg29 zuSsR1=r-zQ{lJ!F47JwrZ7D^Co^|c{Yg#54<2Q4TqwC96%k#8n;46jMQ%sPP8O9np zo@b|y3Pj9&uSPxu=T4h-Z-o8hI%1p!!%04C^! ze7XeSIeJ82;Y7cO90zoC`$u$=0`fG~mwAB!u{qSl23I@S zo_s#=n16F3AOE7h#N^WKnSGq5gVWFO-XZ3HhAFO&h^rLcJj91Tg`(>slC$wBjE*3T z#o*<~+JrIAFs|Sp$M-5Lq=0KEa)3YLEY`SzU1Z>J8cTR1VF*!p3?_Iwg*Bcf5&MUV zF+;w$SW(F?tYaeze~y|GempbXlH9NyI$uJMN@CdJ8s++$OUmgRt|_iZi2Vy1D)&PG literal 0 HcmV?d00001 diff --git a/developer/example/Example_CountingNumber_0 b/developer/example/Example_CountingNumber_0 new file mode 100755 index 0000000..03434e8 --- /dev/null +++ b/developer/example/Example_CountingNumber_0 @@ -0,0 +1,2 @@ +#!/bin/bash +java Example_CountingNumber_0 diff --git a/developer/example/Example_CountingNumber_0.class b/developer/example/Example_CountingNumber_0.class new file mode 100644 index 0000000000000000000000000000000000000000..37c012ac05b3ab61067781fde61bd47c3ef71ea2 GIT binary patch literal 2153 zcmbVN%~Bgj5dH=Utt1u@;@4n1viXUGZR8{laS(QF6bUO4!a*`lOcG^SjirUvuDlw# z0_QwL%BP&n*&H0ohde+YB9-SzrQ-DNin0VaRq!LJEb^U7Y=$w0aRn19&S8>a;5dpGgdwPLvrM=uZfcJl z^Ybb$;3BD{)vye!y2o%cp2%xfJ-H!x(=y3(NoY0GRVMG+Iipx|S)F7#80RhLhHuiuVy`@O#;gP)aBJoC;$eR}@@TaSaRI zoplRJP@Zz5CDtD^%yrh=<4LO1WxEAYqS$p6AK*iV@jBlXY0K2Oe5lJB{WT>wW%Goy zaA9=lDh;p}C`8q?$ zrG8loBL8swq#uv^>kf+h3{mQKw}%u#OIsC!Hkj8<;hl#P-!@1R&088bHaRhy)@`9* z)^zIBWd3c4$YZbO9AXBRqmN)kP6zETO0Mm$@y4;+I@if^EWUNR-HA;C$?YnI9X>2W#BHEG#&P5j(>B-(~vtb5$77@|3ox2)Y(BXv5}4oTO> z(q2QHVcuDdGtOSyMVcE%QI~=`qvlLg*lB||o1&?}V7T%>?jkxz$5)yHi(&RuJdX=F-IC&%pM`}iekaD`REw}2gs6Q z@!<8Jp7E#8am}}U+I%V!`o*#CcdUP6?BMku2k3JGE|W6{vCl=E#Sr}~&f`fhTOTIT zkEMzKXVNCo4lVFJ7KbeWjK6P(8$F1i_yQC2z3ViOPD-1qS{ zz9H|A=!+l}2~7q5MjxB}3!xr`;%(tuuOf7*dF6~8;`R|fKf=8u6li=?*#W`}YDWl{ s3E6ZUVGL1d>0i5O_d92X4jU8G=NggB2^*avg25g-B7ryZ`WdHyG literal 0 HcmV?d00001 diff --git a/developer/example/Example_CountingNumber_0.java b/developer/example/Example_CountingNumber_0.java index 1bc1ee9..0dab204 100644 --- a/developer/example/Example_CountingNumber_0.java +++ b/developer/example/Example_CountingNumber_0.java @@ -1,3 +1,4 @@ +import com.ReasoningTechnology.Ariadne.Ariadne_SRM; import java.math.BigInteger; public class Example_CountingNumber_0{ @@ -7,14 +8,14 @@ public class Example_CountingNumber_0{ if( !n.can_read() ) return; - if( n.state() == Ariadne_SRM.MachineState.SEGMENT ){ + if( n.topology() == Ariadne_SRM.Topology.SEGMENT ){ do{ System.out.println("Current Number: " + n.read()); if( !n.can_step() ) break; n.step(); }while( true ); - }else if( n.state() == Ariadne_SRM.MachineState.INFINITE ){ + }else if( n.topology() == Ariadne_SRM.Topology.INFINITE ){ int count = 0; do{ System.out.println("Current Number: " + n.read()); diff --git a/developer/example/Example_IndexTree_4x4 b/developer/example/Example_IndexTree_4x4 new file mode 100755 index 0000000..66b84a4 --- /dev/null +++ b/developer/example/Example_IndexTree_4x4 @@ -0,0 +1,2 @@ +#!/bin/bash +java Example_IndexTree_4x4 diff --git a/developer/example/Example_IndexTree_4x4.class b/developer/example/Example_IndexTree_4x4.class new file mode 100644 index 0000000000000000000000000000000000000000..fc79e76f5d8b95d83bec13e78285c4e62a748d54 GIT binary patch literal 1679 zcmbVM-%k@+6#g!>b7^-FRw#;sKUZx9th>u1Qp8mhY*KKgNV3@&a@*caN2fE*blAYl zKJ6dko6q`yi6+Kp{{Ub8Ph`J4m1q@B*CxGp?mg#x=bZ1HbKksw@e05qifQzqS0Z5} z2}@w`q550pJ>@(3yOoE!8VOkQuJ1+*0=?PXhD4vhm1@w)uW8i^eAjo@b+zsXUf}HH zZ-lO@`FelfEc!LQy&h`4xg4ryJq?Lov;1JgM!!I^6{(Oeu4i+l|Bty?cfHzXd2OYT z#sCH-ezb8ILjn`sV$oJ05o%Qv7-kHgCtr}r2psvVEoi8yp1_GgSzrgE7A=z7Hl!QOxxTI@_&S`AC)6IY%u0=oRBza;}lK{48^`Xbp&M7Sa?1` zvR_7*+c0FFweb_qu})qPJlbjs+{=C?;O`-MHK=LEdI4F9oQ;d7Y%|^R`?3B8Mxf8v zu2ZiBp()s;jVaS|33Anx$TP>=+p5v@^e25Yy**8h#n^hFr>hrk371_AqGs%r?-<8k z*ULQRxeM;ei_amR#^Rs38ZnT@FI?@m0)E9bPbvI{8Q#!X{6jFwyXYn4pU;shP3$7Q zGP#RGuQ9y(3?oy!7)#7p6Wq_tB}NmwI6s#hO?E0|EbB3>CrJHki6?t+sc$qUzODAo z#F~JKbq&K@5224U(T@>i_^gcKC{FTOIgjHUk}*a+j%zr9CEgbKV3cqccX1Bu)Of(* ztRagAa%gfuTbPXVzSGVPS1?QbK6to_IcDAu2L;SC_Y5|Pnn5p7RAC*+$5Kav>%~<+wvB_+FG}$b(^voSbJ2L5=+vo1Jb0#3hWWM<5uDV#grs_#*@@o JrgabQ{0D6jrpf>S literal 0 HcmV?d00001 diff --git a/developer/example/Example_IndexTree_4x4.java b/developer/example/Example_IndexTree_4x4.java index 3d425c2..79a00af 100644 --- a/developer/example/Example_IndexTree_4x4.java +++ b/developer/example/Example_IndexTree_4x4.java @@ -1,6 +1,9 @@ import com.ReasoningTechnology.Ariadne.Ariadne_SRM; import com.ReasoningTechnology.Ariadne.Ariadne_SRM_List; +import com.ReasoningTechnology.Ariadne.Ariadne_IndexTree_Child_SRM; +import com.ReasoningTechnology.Ariadne.Ariadne_IndexTree_Graph; +import com.ReasoningTechnology.Ariadne.Ariadne_IndexTree_Node; import java.math.BigInteger; @@ -11,7 +14,7 @@ public class Example_IndexTree_4x4{ Ariadne_IndexTree_Graph graph = new Ariadne_IndexTree_Graph(); Ariadne_SRM root = graph.start(); - Ariadne_IndexTree_Node label; + BigInteger label[]; Ariadne_IndexTree_Node node; Ariadne_SRM child_srm; diff --git a/developer/example/Example_IndexTree_Diagonal_SRM b/developer/example/Example_IndexTree_Diagonal_SRM new file mode 100755 index 0000000..5b45c16 --- /dev/null +++ b/developer/example/Example_IndexTree_Diagonal_SRM @@ -0,0 +1,2 @@ +#!/bin/bash +java Example_IndexTree_Diagonal_SRM diff --git a/developer/example/Example_IndexTree_Diagonal_SRM.class b/developer/example/Example_IndexTree_Diagonal_SRM.class new file mode 100644 index 0000000000000000000000000000000000000000..7f9b08e0649ece48dbe8210813346b0f3c1b17b4 GIT binary patch literal 1852 zcmaJ?T~kv>7=D(7oDdFR1M+1GkuQO$X|4StYAYx;ZBT0{)KVIkWE+m0oRc{@apb-~ zqSK2`#~W|8)4`6N;Rp0T^s4`&GuA$v6BS5GGTGht-FKh&c|UgZ=fBVQ0W3kr(1DPF zu!&AY1Ww$S4`kYwPC0#R>%J=b0+CCWWBFGELbG#gU5KK~K+Hrp%tPk+-I}i|v~ue_ zbTZcfvfT7-&vN{{?Z56`_yk#J6 zq8|eS{cUgrjH*Vp9Xgr~JT)lO4RJGbYcULB$iT3P5sV59zV=kOX34VaNV`Cn0^y3> zQ39j0bGh~=nK;vwF!46V1ctQrlIs+uzi#>4T-AK(_%+QUJJ-rXvq+jatrHt&cB)ZK z3Uq928ki>9n^Xt97weW?QeG5i1jI%RQ<&3L8Hgc;vj)zYIFGczK;v9R`rGM6tDJRw zRaTxr)OQ0IS}>fW;2Dkgu89kHk0q7Ws&YyK=h|hjLYiH`ed(2n)Zb>Com%tQufzXWd4ZU&S)u6G9d@+H3iPmbi#sc_+9Yaz?|Ljm z!IoRf7D&CKailnzHsv6oCD7SCIn*S0^q@dj;KEm|)<{c`uPQ^XdAIHr)v~3tI(dBJ z&g6VzUN7rA8nAnP4H#>0e>Qd-l-xJ0IE5 zWlD+gz2`UuP?w1Og2-d^{Lmp%dl-NG@^9@X)NnIHIKbco9-|u*z5FIH#7jJkGkhmg z8071Axo_>9DFP~VNv3-lTo6eqg~n#Jc$uD><8F3<1( zgh+hi$sd@y8=rZGSu#${??1w1YCdsc5A%C?XPt_0=@DY7_(d&}`{S2?rQ#oGfl++) z8cC7nf0e*iQ1qCpj;oWlzBaa!KQEwa?~dl8Pl mK(~P@G5!zB6vAz4JMbm$aE{XIEB^A>pcLckTYQIm82JwtRn6c4 literal 0 HcmV?d00001 diff --git a/developer/example/Example_SRMI_Array b/developer/example/Example_SRMI_Array new file mode 100755 index 0000000..80c5dbd --- /dev/null +++ b/developer/example/Example_SRMI_Array @@ -0,0 +1,2 @@ +#!/bin/bash +java Example_SRMI_Array diff --git a/developer/example/Example_SRMI_Array.class b/developer/example/Example_SRMI_Array.class new file mode 100644 index 0000000000000000000000000000000000000000..c99942c127a3ef41d1a0ca932a15ee1d20e053fb GIT binary patch literal 2122 zcmbVNT~`}b6x|m>CZxkh2MR^8f&zv@8?9B5AQsXhXi_SJskF9ulT69LWG2o`Sn^NQ zKhS4=Xj!bK%V!_@NBSH5*fW!00_a+F9_HLR_nxnP_PO)NUq`Q_}?niMB(!@0#{b0!aa}lz>XHoIo!{Hi3SM z+ev5`P%xFnoORg&qJO+?n&h!{*GW9TbGJa+{QiT@5u}l(|F{0o#6|ZAd z;6}-*rZ)`fIW{xdG)fiQv7DU)x;JInHkxu<-^j0RhcN|WRk>#ftfWplpU$1%U6|1o z6>nlpAW@R`wrj|8h}VN|yoI+FOsJT|RI~aJUj4xHjVez$b(Vf9O2l;1_Xwy@SPfYX z9j8=G<0?~*oDQZMfVA`|qp_E>Dz4$Wz;IAn*0D>{zi;{#t~_7bK5?FER2zj48`ng) zRh7iMcu&C%74PGwz(ClM_QV8~T9Bq?GxM{&7J?>ysNy5c5fb02g)I@7WA^6&cw)0* zNhB1^tH@x1vG=7_H`bq=s3_v=Sruszm<=-eRK>01CK3Kxpj=it2c&*1P$;+~pxyai zR%@2gPMNGzCT03^rfuAqqqyF=@N)^TWT3tX^d(Xh5#J_iwY41CG zMmp+AG;AxfA$^sO$fN8gHTefl9T=4K8toS%J$H-5z2FBs?Qo!_AxVFq}H zbfo#<5Fa1mlTgD0i$5X$6iKd@p8owJ$SQ^)t0_hYk{Cq~3+hD*{g}r^=A)s20X)DU z9$_fVdMwHedEBMVD3-B~d(3;BVZOu$VbG}`qKx)7kN3W!uE4z>bpDByg8K?CUyIY- j7L^?g@{qEZt8Z!YP56F{C)8=w?ZCv|tr1wTQNzeTKn*@g literal 0 HcmV?d00001 diff --git a/developer/example/Example_SRMI_Array.java b/developer/example/Example_SRMI_Array.java index 818a72f..d630176 100644 --- a/developer/example/Example_SRMI_Array.java +++ b/developer/example/Example_SRMI_Array.java @@ -6,24 +6,18 @@ import java.util.List; public class Example_SRMI_Array { public static void main( String[] args ){ - // Create a list - List label_list = Arrays.asList( "A" ,"B" ,"C" ,"D" ); + // Create an Array + List label_array = Arrays.asList( "A", "B", "C", "D" ); - // Attach SRMI to the list - Ariadne_SRMI_Array srm = Ariadne_SRMI_Array.make( label_list ); - - // Use the SRMI - System.out.println( "Topology: " + srm.topology() ); - System.out.println( "Location: " + srm.location() ); - - // Traverse the list - while( srm.location() != Ariadne_SRM.Location.RIGHTMOST ){ - System.out.println( "Reading: " + srm.access() ); - srm.step(); + // Attach SRMI to the array + Ariadne_SRMI_Array srm = Ariadne_SRMI_Array.make( label_array ); + if( srm.can_read() ){ + do{ + System.out.println( "Reading: " + srm.read() ); + System.out.println( "Topology: " + srm.topology() ); + if( !srm.can_step() ) break; + srm.step(); + }while(true); } - - // Final item - System.out.println( "Reading: " + srm.access() ); - System.out.println( "Location: " + srm.location() ); } } diff --git a/developer/example/Example_SRM_List b/developer/example/Example_SRM_List new file mode 100755 index 0000000..e0d48dd --- /dev/null +++ b/developer/example/Example_SRM_List @@ -0,0 +1,2 @@ +#!/bin/bash +java Example_SRM_List diff --git a/developer/example/Example_SRM_List.class b/developer/example/Example_SRM_List.class new file mode 100644 index 0000000000000000000000000000000000000000..5c8b1bcdfbfd8791a7bbd9c19a54997a21017883 GIT binary patch literal 2095 zcmbVN-&Y$&6#j;!YzRxi0I8_06lqPMZ7Np9hSEY>Y&9vBAXw1GA=!o{o86r3gd_in z`VaJ3A7~GrKkGH|2lL&!kb#2NGp zjO@vMnR29CPOa|jSw$t#zhJwzS`-K+k{bph0%J|3hO(Vh)^;maDQo*G3Im}C1_i{D z-Vd2Li(y*HQb}Muk?r=JPHsi;8r7F07$wO>F^;%_b0%KLguwNpS52*1()V23Ew5X} zUDtEG@|h6E^9^Tt8_AZT4!k;&6_6P!g+y6QM!e? zC7B38*c!mwm^5(F#1!5+hFSi=S5}o;UW4I`2RYkb>QUWxRbJ6WwdwehiOYDG0S8XU z63LVB7)T!Xt>~m2W7%d+T)|a=b2{CO=N6^fwAC(mzLKu;1ul2O&3kD`3|>{B#fl<@ z>jvI4F^BgBMw<%9!xb=UI(WzJDq`E~h6d^b6CdIu0;RlKvq%E-%;^-MPp`KuiBAF_ zo4AQI@7|YA!&-gXl~K@|y)ueHU{*)8XyW$E(y=Ht&0I3Eth+p{83yhW-+SN6YR$1a zn<(Rz*hIr@ZR=s9x?|PX<&Hy6EbA4evmx1jJhzx(wQCdbShm{{qh~wXge{)fJ_&tt zgK}9f({{9nSRm@i9m^>=&Bl%g4!TB;SA_gJ+imVNNH=GNrt#zH9Msw=&Gfu%;babr z^s;j5tN+E(P+rMmB`0ewV551jQ7>96wuXMZ8{KQVRaw4e&r`mt%UaG-yI#qUV2jZ4 z)hMy$Z%&E`z7iO0_ZAt${df{Z0pA#qdW?1ireDp4?e2ROD;4y1Fj*_IsJ!}tz;~T9 z)lv*@y)WI8WBJor&#N?Q>61WpaE=+S6Z9VHo&C_G)mtty(sA;(vRDN3f$LiJj3a&D z@(mEM8~a#s%V#`l>22^YAV{uPNM%m9bD7I1F7!2A&wnj9+J`T_mV5asU9v%i1W zVTGZ?nqx3Jgb1P-#vtN6pXY80BS<2KG)9rb7&iGzZBzP$f1plbG6)k{N label_list = new LinkedList<>(); - label_list.add("A"); - label_list.add("B"); - label_list.add("C"); + label_list.add( "A" ); + label_list.add( "B" ); + label_list.add( "C" ); - // Attach SRM to the linked list + // Attach SRM to the linked list and traverse Ariadne_SRM_List srm = Ariadne_SRM_List.make(label_list); - - // Use the SRM - System.out.println( "Topology: " + srm.topology() ); - System.out.println( "Initial Location: " + srm.location() ); - - // Traverse the list - while( srm.location() != Ariadne_SRM.Location.RIGHTMOST ){ - System.out.println("Reading: " + srm.access()); - srm.step(); + if( srm.can_read() ){ + do{ + System.out.println( "Reading: " + srm.read() ); + System.out.println( "Topology: " + srm.topology() ); + if( !srm.can_step() ) break; + srm.step(); + }while(true); } - - // Final item - System.out.println(" Reading: " + srm.access() ); - System.out.println(" Final Location: " + srm.location() ); - - // Rewind the SRM and traverse again - srm.rewind(); - System.out.println( "After rewind: " + srm.access() ); } } diff --git a/developer/example/IndexTree_Diagonal_SRM.class b/developer/example/IndexTree_Diagonal_SRM.class new file mode 100644 index 0000000000000000000000000000000000000000..a9bf2ed686a0f91c7a25c691f004bbcf1f1f5bce GIT binary patch literal 2988 zcmb_eS#uOs6#lwr#-61KSs(<07-h*UNd}bFge3$5fyp2whD~idGnbi$neMUELzyR^ z`~$vel~wXY`KDDGM9Srf2mgrwK@0J_-94Eh7z$Fpbl-E&{+)B~y?^}k^RED=a4QKF z5e-otF}$WAS90q4E5clIY|F09i&E8gYEET2Kj~U#*%qz8F?VHF!D|ziZFwgYMADfB z4RHm1x6Qj|zUf&tO1kE9!CLZ?&=5%=1zp1?9bMS0pnt|Li%;iWA&fJYS#fN$7MSd> zQNwU<8Aj7~8p0N3!*z2PnUsN9g8Jv#PcAK`LE-MPzLwx(w?K{_?luH-K*-WDZqTtiyHwwnQ? zZhF=HX{$10d!i!TaT!cjM-C&jQ*)d<&4z-@>2;(tg_o^kyADOd?7JD$k;i@oy|;u{ zsKK=}9Nt*c3ZixMj*!NV>o|dv3gWh~D%C~DRd6!B5iqCxrsI$hQ5BOqPRrJamrUDO z@*`AF=#)RBn+ujLip~0>aOcg%8bjzUI3=^TVDj`J9d1Uw zs>N0sD72fe^AMoD9ZYRqX70JXUzAv^COelQ2FJ+JjkYfjhwvl`C!zn@)Rr5q^ft|T zX6eqX*$C53%EQD6!$|l<5R2aGGGocDD;Rz0&}3gJn0^)c7eQ3|-)8znUaq}TxUbZH z$vLO#mc+CrTW;{b8)r-o7fDH21>~o^Q7c%Ec*lcq^Q~< zx~s!gEOZq>u|OprIQ-Ixa+g|B>fVz^9%6?AE|L%NhJvqfP_82nv0KIO7%pUUE6B`d zM^-Re91TUfDAG;hfQqa4pFWmU$hj=nE#<*NF5EtnYwZosQlf7p(3Ms*#q20;cUVq_ z-1|?zmH0;e1TPR%U^kK5M?{CY$`adA;xWb}KF?Rr0Zii{0XT$@aTpekz$51~BKh3B(e|)W5NyQiuS=}hbor)2}jm8+9ltE%$fqB2e}H+lql{ePxk9?{L5C$hvPJxdyGA7sfi-1 ze(FmMjPO6jMhlWBaqj-pKS!j)pzym`D9}Zm1EXVs<8{?9$3CVo%9P}AWhvW(oiGT! zkLhYidB1SHq}ejEtSVaN3gk`72fQMA5|A#aPtc=bP=opxA2Y%HEOt*4=IIcd_7JY% X!dh(Nen`Q*x3Ez|GbNPiLWTGj^tQII literal 0 HcmV?d00001 diff --git a/developer/example/IndexTree_Diagonal_SRM.java b/developer/example/IndexTree_Diagonal_SRM.java index b3fb2b7..a9a653b 100644 --- a/developer/example/IndexTree_Diagonal_SRM.java +++ b/developer/example/IndexTree_Diagonal_SRM.java @@ -5,35 +5,37 @@ import com.ReasoningTechnology.Ariadne.Ariadne_Test; import com.ReasoningTechnology.Ariadne.Ariadne_SRM; import com.ReasoningTechnology.Ariadne.Ariadne_IndexTree_Node; -public class IndexTree_Diagonal_SRM extends Ariadne_SRM> { +public class IndexTree_Diagonal_SRM extends Ariadne_SRM>{ + // Instance data private final List list_of__unopened_node; private final List> list_of__opened_incomplete_child_list; private final List read_list; - private final Ariadne_Test tester; - public static IndexTree_Diagonal_SRM make() { - return new IndexTree_Diagonal_SRM(); - } - - protected IndexTree_Diagonal_SRM() { + // Constructor + protected IndexTree_Diagonal_SRM(){ this.list_of__unopened_node = new ArrayList<>(); this.list_of__opened_incomplete_child_list = new ArrayList<>(); this.read_list = new ArrayList<>(); - this.tester = Ariadne_Test.make("IndexTree_Diagonal_SRM: "); enqueue_root(); } + // Static factory method + public static IndexTree_Diagonal_SRM make(){ + return new IndexTree_Diagonal_SRM(); + } + @Override - public List access() { + public List read(){ return read_list; } @Override - public void step() { + public void step(){ read_list.clear(); - while (!list_of__unopened_node.isEmpty()) { + // Process unopened nodes + while( !list_of__unopened_node.isEmpty() ){ BigInteger[] label = list_of__unopened_node.remove(0); // Retrieve the node using lookup @@ -41,51 +43,48 @@ public class IndexTree_Diagonal_SRM extends Ariadne_SRM> { // Descend by getting neighbors List child_labels = fetch_child_labels(node); - if (!child_labels.isEmpty()) { + if( !child_labels.isEmpty() ){ list_of__opened_incomplete_child_list.add(child_labels); } } - while (!list_of__opened_incomplete_child_list.isEmpty()) { + // Process incomplete child lists + while( !list_of__opened_incomplete_child_list.isEmpty() ){ List child_labels = list_of__opened_incomplete_child_list.remove(0); - if (!child_labels.isEmpty()) { + if( !child_labels.isEmpty() ){ BigInteger[] label = child_labels.remove(0); read_list.add(label); - tester.print("Queued label: " + format_label(label)); - // Retrieve node and check its neighbors Ariadne_IndexTree_Node node = lookup(label); - if (!fetch_child_labels(node).isEmpty()) { + if( !fetch_child_labels(node).isEmpty() ){ list_of__unopened_node.add(label); } } } } - private void enqueue_root() { + private void enqueue_root(){ BigInteger[] root_label = new BigInteger[0]; read_list.add(root_label); - tester.print("Queued root label: " + format_label(root_label)); - Ariadne_IndexTree_Node root_node = lookup(root_label); - if (!fetch_child_labels(root_node).isEmpty()) { + if( !fetch_child_labels(root_node).isEmpty() ){ list_of__unopened_node.add(root_label); } } - private Ariadne_IndexTree_Node lookup(BigInteger[] label) { + private Ariadne_IndexTree_Node lookup(BigInteger[] label){ // Perform a lookup to retrieve the node corresponding to the label return Ariadne_IndexTree_Node.make(label); } - private List fetch_child_labels(Ariadne_IndexTree_Node node) { + private List fetch_child_labels(Ariadne_IndexTree_Node node){ List child_labels = new ArrayList<>(); - if (node != null) { + if(node != null){ Ariadne_SRM neighbor_srm = node.neighbor(); - while (neighbor_srm.can_step()) { + while( neighbor_srm.can_step() ){ child_labels.add(neighbor_srm.read()); neighbor_srm.step(); } @@ -93,14 +92,4 @@ public class IndexTree_Diagonal_SRM extends Ariadne_SRM> { return child_labels; } - - private String format_label(BigInteger[] label) { - StringBuilder formatted = new StringBuilder("["); - for (int i = 0; i < label.length; i++) { - formatted.append(label[i].toString()); - if (i < label.length - 1) formatted.append(","); - } - formatted.append("]"); - return formatted.toString(); - } } diff --git "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" "b/developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" index febd619..6dbec47 100644 --- "a/developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" +++ "b/developer/javac\360\237\226\211/Ariadne_IndexTree_Child_SRM.java" @@ -36,6 +36,7 @@ public class Ariadne_IndexTree_Child_SRM extends Ariadne_SRMI{ return true; } @Override public void step(){ + increment(); label[label.length - 1] = index(); } @Override public Topology topology(){ diff --git "a/developer/javac\360\237\226\211/Ariadne_SRMI.java" "b/developer/javac\360\237\226\211/Ariadne_SRMI.java" index 8d6b85c..ffecd86 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRMI.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRMI.java" @@ -18,9 +18,7 @@ public abstract class Ariadne_SRMI extends Ariadne_SRM{ return current_index; } - @Override - public void step(){ - current_topology.step(); + public void increment(){ current_index = current_index.add(BigInteger.ONE); } } diff --git "a/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" "b/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" index 993d233..a0c75c3 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRMI_Array.java" @@ -75,8 +75,8 @@ public class Ariadne_SRMI_Array extends Ariadne_SRMI{ } @Override public void step(){ - Ariadne_SRMI_Array.super.step(); - if( index().compareTo(BigInteger.valueOf(array.size() - 1)) < 0 ) + increment(); + if( index().compareTo(BigInteger.valueOf(array.size() - 1)) == 0 ) set_topology(topo_rightmost); } @Override diff --git "a/developer/javac\360\237\226\211/Ariadne_SRM_List.java" "b/developer/javac\360\237\226\211/Ariadne_SRM_List.java" index 458f784..061b3ca 100644 --- "a/developer/javac\360\237\226\211/Ariadne_SRM_List.java" +++ "b/developer/javac\360\237\226\211/Ariadne_SRM_List.java" @@ -6,98 +6,94 @@ */ package com.ReasoningTechnology.Ariadne; import java.util.List; +import java.util.ListIterator; public class Ariadne_SRM_List extends Ariadne_SRM{ - private final List list; - private int current_index; + // Static methods + public static Ariadne_SRM_List make(List list){ + return new Ariadne_SRM_List<>(list); + } + + private List list; // The attached linked list + private ListIterator iterator; // Iterator for traversal + private T read_value; // Stores the current cell value private final TopoIface topo_null = new TopoNull(); private final TopoIface topo_segment = new TopoSegment(); private final TopoIface topo_rightmost = new TopoRightmost(); - public Ariadne_SRM_List(List list){ + protected Ariadne_SRM_List(List list){ + this.list = list; if( list == null || list.isEmpty() ){ - this.list = null; - set_topology( topo_null ); + this.iterator = null; + set_topology(topo_null); return; } - this.list = list; - this.current_index = 0; - set_topology( topo_segment ); + this.iterator = list.listIterator(); + read_value = iterator.next(); + + if( list.size() == 1 ){ + set_topology(topo_rightmost); + return; + } + + set_topology(topo_segment); } private class TopoNull implements TopoIface{ - @Override - public boolean can_read(){ + @Override public boolean can_read(){ return false; } - @Override - public T read(){ + @Override public T read(){ throw new UnsupportedOperationException( "Cannot read from NULL topo." ); } - @Override - public boolean can_step(){ + @Override public boolean can_step(){ return false; } - @Override - public void step(){ - throw new UnsupportedOperationException( "Cannot step from NULL topo." ); + @Override public void step(){ + throw new UnsupportedOperationException( "Cannot step over NULL topo." ); } - @Override - public Topology topology(){ + @Override public Topology topology(){ return Topology.NULL; } } private class TopoSegment implements TopoIface{ - @Override - public boolean can_read(){ + @Override public boolean can_read(){ return true; } - @Override - public T read(){ - return list.get( current_index ); + @Override public T read(){ + return read_value; } - @Override - public boolean can_step(){ - return current_index < list.size() - 1; + @Override public boolean can_step(){ + return true; } - @Override - public void step(){ - if( can_step() ){ - current_index++; - }else{ - set_topology( topo_rightmost ); - } + @Override public void step(){ + read_value = iterator.next(); + if( !iterator.hasNext() ) set_topology(topo_rightmost); } - @Override - public Topology topology(){ + @Override public Topology topology(){ return Topology.SEGMENT; } } private class TopoRightmost implements TopoIface{ - @Override - public boolean can_read(){ + @Override public boolean can_read(){ return true; } - @Override - public T read(){ - return list.get( current_index ); + @Override public T read(){ + return read_value; } - @Override - public boolean can_step(){ + @Override public boolean can_step(){ return false; } - @Override - public void step(){ + @Override public void step(){ throw new UnsupportedOperationException( "Cannot step from RIGHTMOST topo." ); } - @Override - public Topology topology(){ + @Override public Topology topology(){ return Topology.RIGHTMOST; } } diff --git "a/developer/tool\360\237\226\211/clean" "b/developer/tool\360\237\226\211/clean" index 687883e..c11bdba 100755 --- "a/developer/tool\360\237\226\211/clean" +++ "b/developer/tool\360\237\226\211/clean" @@ -18,19 +18,6 @@ set -x rm_na jvm/* rm_na bash/* - -# remove example class files - - cd example || exit 1 - - for file in Example_*.class; do - echo "file: " $file - rm_na "$file" - wrapper_name=$(basename "$file" .class) - rm_na "$wrapper_name" - done - - set +x echo "$(script_fn) done." diff --git "a/developer/tool\360\237\226\211/clean_example" "b/developer/tool\360\237\226\211/clean_example" new file mode 100755 index 0000000..bd0670b --- /dev/null +++ "b/developer/tool\360\237\226\211/clean_example" @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +script_afp=$(realpath "${BASH_SOURCE[0]}") + +# Removes all files found in the build directories. It asks no questions as to +# how or why the files got there. Be especially careful with the 'bash' +# directory if you have authored scripts for release, add a `bash🖉` +# directory instead of putting them in `bash`. + +cd "$REPO_HOME"/developer || exit 1 +source tool🖉/env_script + +# remove example class files + + cd example || exit 1 + + for file in Example_*.class; do + echo "file: " $file + rm_na "$file" + wrapper_name=$(basename "$file" .class) + rm_na "$wrapper_name" + done + +echo "$(script_fn) done." + diff --git "a/developer/tool\360\237\226\211/make_example" "b/developer/tool\360\237\226\211/make_example" index 738770e..6eaf0c9 100755 --- "a/developer/tool\360\237\226\211/make_example" +++ "b/developer/tool\360\237\226\211/make_example" @@ -20,21 +20,16 @@ echo "Compiling example .java files..." echo "Creating bash wrappers..." -set -x - -for file in Example_*.class; do - echo "file: " $file - wrapper_name=$(basename "$file" .class) - cat > "$wrapper_name" << EOL + for file in Example_*.class; do + echo "file: " $file + wrapper_name=$(basename "$file" .class) + cat > "$wrapper_name" << EOL #!/bin/bash java $wrapper_name EOL - - # Make the wrapper executable - chmod +x "$wrapper_name" - done - -set +x + # Make the wrapper executable + chmod +x "$wrapper_name" + done echo "$(script_fp) done." -- 2.20.1