This is an automated email from the ASF dual-hosted git repository. mboehm7 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/systemml.git
The following commit(s) were added to refs/heads/master by this push: new bd537bb [MINOR] Fix Python lineage tracing tests bd537bb is described below commit bd537bb39130484318216a91d27e8243f6166c54 Author: Sebastian <baunsga...@tugraz.at> AuthorDate: Fri Apr 24 19:40:09 2020 +0200 [MINOR] Fix Python lineage tracing tests Change to the way lineage trace tests are executed, such that instead of having files to compare to, the python trace is compared to a trace made from systemds directly. Motivated by the fact that the previous tests were failing, because of inconsistencies between new traces and old. Furthermore this commit contains: - A Badge for Federated Python tests - A update to the Automated tests of Federated Python for new build instruction Closes #896. --- .github/workflows/federatedPython.yml | 2 +- .github/workflows/python.yml | 9 + README.md | 1 + src/main/python/tests/lineage/README.md | 40 + src/main/python/tests/lineage/test_lineagetrace.py | 103 + src/main/python/tests/lt.txt | 1 - src/main/python/tests/lt2.txt | 4 - src/main/python/tests/lt_l2svm.txt | 2035 -------------------- src/main/python/tests/test_l2svm_lineage.py | 88 - src/main/python/tests/test_lineagetrace.py | 75 - 10 files changed, 154 insertions(+), 2204 deletions(-) diff --git a/.github/workflows/federatedPython.yml b/.github/workflows/federatedPython.yml index 9ec7b20..c07cde9 100644 --- a/.github/workflows/federatedPython.yml +++ b/.github/workflows/federatedPython.yml @@ -51,7 +51,7 @@ jobs: ${{ runner.os }}-maven- - name: Maven clean & package - run: mvn clean package + run: mvn clean package -P distribution - name: Setup Python uses: actions/setup-python@v1 diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index cc3e1cb..84933ac 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -88,3 +88,12 @@ jobs: echo "Beginning tests" python -m unittest tests/*.py echo "Exit Status: " $? + + - name: Run all lineage python tests + run: | + export SYSTEMDS_ROOT=$(pwd) + export PATH=$SYSTEMDS_ROOT/bin:$PATH + export SYSDS_QUIET=1 + cd src/main/python + python -m unittest tests/lineage/*.py + echo "Exit Status: " $? \ No newline at end of file diff --git a/README.md b/README.md index ce1d574..86803e8 100644 --- a/README.md +++ b/README.md @@ -36,3 +36,4 @@ limitations under the License. ![Application Test](https://github.com/apache/systemml/workflows/Application%20Test/badge.svg) ![Function Test](https://github.com/apache/systemml/workflows/Function%20Test/badge.svg) ![Python Test](https://github.com/apache/systemml/workflows/Python%20Test/badge.svg) +![Federated Python Test](https://github.com/apache/systemml/workflows/Federated%20Python%20Test/badge.svg) diff --git a/src/main/python/tests/lineage/README.md b/src/main/python/tests/lineage/README.md new file mode 100644 index 0000000..eb2eb4c --- /dev/null +++ b/src/main/python/tests/lineage/README.md @@ -0,0 +1,40 @@ +<!-- +{% comment %} +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to you under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +{% end comment %} +--> + +# Python Lineage Tests + +To enable testing the lineage you have to setup your path environment. + +## Linux/bash + +From the root of the repository call: + +```bash +# Do once in terminal +export SYSTEMDS_ROOT=$(pwd) +export PATH=$SYSTEMDS_ROOT/bin:$PATH +export SYSDS_QUIET=1 +``` + +Once the environment is setup, you can begin testing with the following: + +```bash +cd src/main/python/ +python tests/lineage/*.py +``` diff --git a/src/main/python/tests/lineage/test_lineagetrace.py b/src/main/python/tests/lineage/test_lineagetrace.py new file mode 100644 index 0000000..e462c48 --- /dev/null +++ b/src/main/python/tests/lineage/test_lineagetrace.py @@ -0,0 +1,103 @@ +# ------------------------------------------------------------- +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# +# ------------------------------------------------------------- + +import warnings +import unittest +import os +import shutil +import sys +import re + +path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../") +sys.path.insert(0, path) +from systemds.context import SystemDSContext + +sds = SystemDSContext() + +test_dir = os.path.join("tests", "lineage") +temp_dir = os.path.join(test_dir, "temp") + +class TestLineageTrace(unittest.TestCase): + def setUp(self): + warnings.filterwarnings( + action="ignore", message="unclosed", category=ResourceWarning + ) + + def tearDown(self): + warnings.filterwarnings( + action="ignore", message="unclosed", category=ResourceWarning + ) + + def test_compare_trace1(self): # test getLineageTrace() on an intermediate + m = sds.full((10, 10), 1) + m_res = m + m + + python_trace = [x.strip().split("°") for x in m_res.get_lineage_trace().split("\n")] + + dml_script = ( + "x = matrix(1, rows=10, cols=10);\n" + "y = x + x;\n" + "print(lineage(y));\n" + ) + + sysds_trace = create_execute_and_trace_dml(dml_script, "trace1") + + # It is not garantied, that the two lists 100% align to be the same. + # Therefore for now, we only compare if the command is the same, in same order. + python_trace_commands = [x[:1] for x in python_trace] + dml_script_commands = [x[:1] for x in sysds_trace] + self.assertListEqual(python_trace_commands, dml_script_commands) + +# TODO add more tests cases. + +def create_execute_and_trace_dml(script: str, name: str): + script_file_name = temp_dir + "/" + name + ".dml" + + if not os.path.exists(temp_dir): + os.makedirs(temp_dir) + + with open(script_file_name, "w") as dml_file: + dml_file.write(script) + + # Call SYSDS! + result_file_name = temp_dir + "/" + name + ".txt" + os.system("systemds.sh " + script_file_name + " > " + result_file_name) + + return parse_trace(result_file_name) + +def parse_trace(path: str): + pointer = 0 + data = [] + with open(path, "r") as log: + for line in log: + if pointer == 0: + print(line) + else: + data.append(line.strip().split("°")) + pointer += 1 + # Remove the last 3 lines of the System output because they are after lintrace. + return data[:-3] + +if __name__ == "__main__": + unittest.main(exit=False) + shutil.rmtree(temp_dir, ignore_errors=True) + print("Done") + # sds.close() diff --git a/src/main/python/tests/lt.txt b/src/main/python/tests/lt.txt deleted file mode 100644 index 7a3a6c1..0000000 --- a/src/main/python/tests/lt.txt +++ /dev/null @@ -1 +0,0 @@ -(0) (C) CP°rand°5·SCALAR·INT64·true°10·SCALAR·INT64·true°1000°13.020000000000001°13.020000000000001°1.0°-1°uniform°1.0°1°_mVar0·MATRIX·FP64 diff --git a/src/main/python/tests/lt2.txt b/src/main/python/tests/lt2.txt deleted file mode 100644 index 7085993..0000000 --- a/src/main/python/tests/lt2.txt +++ /dev/null @@ -1,4 +0,0 @@ -(2) (L) 3.1·SCALAR·FP64·true -(0) (C) CP°rand°5·SCALAR·INT64·true°10·SCALAR·INT64·true°1000°4.2°4.2°1.0°-1°uniform°1.0°1°_mVar0·MATRIX·FP64 -(1) (I) uak+ (0) -(3) (I) * (2) (1) diff --git a/src/main/python/tests/lt_l2svm.txt b/src/main/python/tests/lt_l2svm.txt deleted file mode 100644 index f21075a..0000000 --- a/src/main/python/tests/lt_l2svm.txt +++ /dev/null @@ -1,2035 +0,0 @@ -(46) (C) CP°rand°_Var26·SCALAR·INT64·false°1·SCALAR·INT64·true°1000°0°0°1.0°-1°uniform°1.0°1°_mVar27·MATRIX·FP64 -(53) (L) 0·SCALAR·INT64·true -(32) (L) 1·SCALAR·INT64·true -(47) (L) X·MATRIX·FP64·false -(48) (I) r' (47) -(8) (L) 2·SCALAR·INT64·true -(13) (L) Y·MATRIX·FP64·false -(14) (I) uamax (13) -(11) (L) Y·MATRIX·FP64·false -(12) (I) uamin (11) -(36) (I) - (14) (12) -(37) (I) / (8) (36) -(38) (L) Y·MATRIX·FP64·false -(39) (I) * (37) (38) -(40) (I) + (12) (14) -(41) (I) / (40) (36) -(42) (I) - (39) (41) -(49) (I) ba+* (48) (42) -(67) (I) * (46) (49) -(68) (I) uak+ (67) -(69) (I) * (32) (68) -(70) (I) ^2 (49) (8) -(71) (I) uak+ (70) -(72) (I) * (32) (71) -(80) (I) * (53) (72) -(81) (I) + (69) (80) -(52) (C) CP°rand°_Var30·SCALAR·INT64·false°1·SCALAR·INT64·true°1000°0°0°1.0°-1°uniform°1.0°1°_mVar31·MATRIX·FP64 -(65) (L) X·MATRIX·FP64·false -(66) (I) ba+* (65) (49) -(82) (I) * (53) (66) -(83) (I) + (52) (82) -(84) (I) 1-* (42) (83) -(85) (I) max (84) (53) -(86) (I) * (85) (42) -(87) (I) * (86) (66) -(88) (I) uak+ (87) -(89) (I) - (81) (88) -(90) (I) > (84) (53) -(91) (I) * (66) (90) -(92) (I) * (91) (66) -(93) (I) uak+ (92) -(94) (I) + (72) (93) -(95) (I) / (89) (94) -(96) (I) - (53) (95) -(105) (I) * (96) (72) -(106) (I) + (69) (105) -(107) (I) * (96) (66) -(108) (I) + (52) (107) -(109) (I) 1-* (42) (108) -(110) (I) max (109) (53) -(111) (I) * (110) (42) -(112) (I) * (111) (66) -(113) (I) uak+ (112) -(114) (I) - (106) (113) -(115) (I) > (109) (53) -(116) (I) * (66) (115) -(117) (I) * (116) (66) -(118) (I) uak+ (117) -(119) (I) + (72) (118) -(120) (I) / (114) (119) -(121) (I) - (96) (120) -(129) (I) * (121) (49) -(130) (I) + (46) (129) -(143) (L) X·MATRIX·FP64·false -(144) (I) r' (143) -(131) (I) * (121) (66) -(132) (I) + (52) (131) -(133) (I) 1-* (42) (132) -(134) (I) max (133) (53) -(145) (I) * (134) (42) -(146) (I) ba+* (144) (145) -(147) (I) - (146) (130) -(159) (I) ^2 (147) (8) -(160) (I) uak+ (159) -(161) (I) ^2 (49) (8) -(162) (I) uak+ (161) -(163) (I) / (160) (162) -(164) (I) * (163) (49) -(165) (I) + (164) (147) -(176) (I) * (130) (165) -(177) (I) uak+ (176) -(178) (I) * (32) (177) -(179) (I) ^2 (165) (8) -(180) (I) uak+ (179) -(181) (I) * (32) (180) -(189) (I) * (53) (181) -(190) (I) + (178) (189) -(174) (L) X·MATRIX·FP64·false -(175) (I) ba+* (174) (165) -(191) (I) * (53) (175) -(192) (I) + (132) (191) -(193) (I) 1-* (42) (192) -(194) (I) max (193) (53) -(195) (I) * (194) (42) -(196) (I) * (195) (175) -(197) (I) uak+ (196) -(198) (I) - (190) (197) -(199) (I) > (193) (53) -(200) (I) * (175) (199) -(201) (I) * (200) (175) -(202) (I) uak+ (201) -(203) (I) + (181) (202) -(204) (I) / (198) (203) -(205) (I) - (53) (204) -(213) (I) * (205) (181) -(214) (I) + (178) (213) -(215) (I) * (205) (175) -(216) (I) + (132) (215) -(217) (I) 1-* (42) (216) -(218) (I) max (217) (53) -(219) (I) * (218) (42) -(220) (I) * (219) (175) -(221) (I) uak+ (220) -(222) (I) - (214) (221) -(223) (I) > (217) (53) -(224) (I) * (175) (223) -(225) (I) * (224) (175) -(226) (I) uak+ (225) -(227) (I) + (181) (226) -(228) (I) / (222) (227) -(229) (I) - (205) (228) -(237) (I) * (229) (181) -(238) (I) + (178) (237) -(239) (I) * (229) (175) -(240) (I) + (132) (239) -(241) (I) 1-* (42) (240) -(242) (I) max (241) (53) -(243) (I) * (242) (42) -(244) (I) * (243) (175) -(245) (I) uak+ (244) -(246) (I) - (238) (245) -(247) (I) > (241) (53) -(248) (I) * (175) (247) -(249) (I) * (248) (175) -(250) (I) uak+ (249) -(251) (I) + (181) (250) -(252) (I) / (246) (251) -(253) (I) - (229) (252) -(261) (I) * (253) (165) -(262) (I) + (130) (261) -(274) (L) X·MATRIX·FP64·false -(275) (I) r' (274) -(263) (I) * (253) (175) -(264) (I) + (132) (263) -(265) (I) 1-* (42) (264) -(266) (I) max (265) (53) -(276) (I) * (266) (42) -(277) (I) ba+* (275) (276) -(278) (I) - (277) (262) -(290) (I) ^2 (278) (8) -(291) (I) uak+ (290) -(292) (I) ^2 (147) (8) -(293) (I) uak+ (292) -(294) (I) / (291) (293) -(295) (I) * (294) (165) -(296) (I) + (295) (278) -(307) (I) * (262) (296) -(308) (I) uak+ (307) -(309) (I) * (32) (308) -(310) (I) ^2 (296) (8) -(311) (I) uak+ (310) -(312) (I) * (32) (311) -(320) (I) * (53) (312) -(321) (I) + (309) (320) -(305) (L) X·MATRIX·FP64·false -(306) (I) ba+* (305) (296) -(322) (I) * (53) (306) -(323) (I) + (264) (322) -(324) (I) 1-* (42) (323) -(325) (I) max (324) (53) -(326) (I) * (325) (42) -(327) (I) * (326) (306) -(328) (I) uak+ (327) -(329) (I) - (321) (328) -(330) (I) > (324) (53) -(331) (I) * (306) (330) -(332) (I) * (331) (306) -(333) (I) uak+ (332) -(334) (I) + (312) (333) -(335) (I) / (329) (334) -(336) (I) - (53) (335) -(344) (I) * (336) (312) -(345) (I) + (309) (344) -(346) (I) * (336) (306) -(347) (I) + (264) (346) -(348) (I) 1-* (42) (347) -(349) (I) max (348) (53) -(350) (I) * (349) (42) -(351) (I) * (350) (306) -(352) (I) uak+ (351) -(353) (I) - (345) (352) -(354) (I) > (348) (53) -(355) (I) * (306) (354) -(356) (I) * (355) (306) -(357) (I) uak+ (356) -(358) (I) + (312) (357) -(359) (I) / (353) (358) -(360) (I) - (336) (359) -(368) (I) * (360) (312) -(369) (I) + (309) (368) -(370) (I) * (360) (306) -(371) (I) + (264) (370) -(372) (I) 1-* (42) (371) -(373) (I) max (372) (53) -(374) (I) * (373) (42) -(375) (I) * (374) (306) -(376) (I) uak+ (375) -(377) (I) - (369) (376) -(378) (I) > (372) (53) -(379) (I) * (306) (378) -(380) (I) * (379) (306) -(381) (I) uak+ (380) -(382) (I) + (312) (381) -(383) (I) / (377) (382) -(384) (I) - (360) (383) -(392) (I) * (384) (296) -(393) (I) + (262) (392) -(405) (L) X·MATRIX·FP64·false -(406) (I) r' (405) -(394) (I) * (384) (306) -(395) (I) + (264) (394) -(396) (I) 1-* (42) (395) -(397) (I) max (396) (53) -(407) (I) * (397) (42) -(408) (I) ba+* (406) (407) -(409) (I) - (408) (393) -(421) (I) ^2 (409) (8) -(422) (I) uak+ (421) -(423) (I) ^2 (278) (8) -(424) (I) uak+ (423) -(425) (I) / (422) (424) -(426) (I) * (425) (296) -(427) (I) + (426) (409) -(438) (I) * (393) (427) -(439) (I) uak+ (438) -(440) (I) * (32) (439) -(441) (I) ^2 (427) (8) -(442) (I) uak+ (441) -(443) (I) * (32) (442) -(451) (I) * (53) (443) -(452) (I) + (440) (451) -(436) (L) X·MATRIX·FP64·false -(437) (I) ba+* (436) (427) -(453) (I) * (53) (437) -(454) (I) + (395) (453) -(455) (I) 1-* (42) (454) -(456) (I) max (455) (53) -(457) (I) * (456) (42) -(458) (I) * (457) (437) -(459) (I) uak+ (458) -(460) (I) - (452) (459) -(461) (I) > (455) (53) -(462) (I) * (437) (461) -(463) (I) * (462) (437) -(464) (I) uak+ (463) -(465) (I) + (443) (464) -(466) (I) / (460) (465) -(467) (I) - (53) (466) -(475) (I) * (467) (443) -(476) (I) + (440) (475) -(477) (I) * (467) (437) -(478) (I) + (395) (477) -(479) (I) 1-* (42) (478) -(480) (I) max (479) (53) -(481) (I) * (480) (42) -(482) (I) * (481) (437) -(483) (I) uak+ (482) -(484) (I) - (476) (483) -(485) (I) > (479) (53) -(486) (I) * (437) (485) -(487) (I) * (486) (437) -(488) (I) uak+ (487) -(489) (I) + (443) (488) -(490) (I) / (484) (489) -(491) (I) - (467) (490) -(499) (I) * (491) (427) -(500) (I) + (393) (499) -(512) (L) X·MATRIX·FP64·false -(513) (I) r' (512) -(501) (I) * (491) (437) -(502) (I) + (395) (501) -(503) (I) 1-* (42) (502) -(504) (I) max (503) (53) -(514) (I) * (504) (42) -(515) (I) ba+* (513) (514) -(516) (I) - (515) (500) -(528) (I) ^2 (516) (8) -(529) (I) uak+ (528) -(530) (I) ^2 (409) (8) -(531) (I) uak+ (530) -(532) (I) / (529) (531) -(533) (I) * (532) (427) -(534) (I) + (533) (516) -(545) (I) * (500) (534) -(546) (I) uak+ (545) -(547) (I) * (32) (546) -(548) (I) ^2 (534) (8) -(549) (I) uak+ (548) -(550) (I) * (32) (549) -(558) (I) * (53) (550) -(559) (I) + (547) (558) -(543) (L) X·MATRIX·FP64·false -(544) (I) ba+* (543) (534) -(560) (I) * (53) (544) -(561) (I) + (502) (560) -(562) (I) 1-* (42) (561) -(563) (I) max (562) (53) -(564) (I) * (563) (42) -(565) (I) * (564) (544) -(566) (I) uak+ (565) -(567) (I) - (559) (566) -(568) (I) > (562) (53) -(569) (I) * (544) (568) -(570) (I) * (569) (544) -(571) (I) uak+ (570) -(572) (I) + (550) (571) -(573) (I) / (567) (572) -(574) (I) - (53) (573) -(582) (I) * (574) (550) -(583) (I) + (547) (582) -(584) (I) * (574) (544) -(585) (I) + (502) (584) -(586) (I) 1-* (42) (585) -(587) (I) max (586) (53) -(588) (I) * (587) (42) -(589) (I) * (588) (544) -(590) (I) uak+ (589) -(591) (I) - (583) (590) -(592) (I) > (586) (53) -(593) (I) * (544) (592) -(594) (I) * (593) (544) -(595) (I) uak+ (594) -(596) (I) + (550) (595) -(597) (I) / (591) (596) -(598) (I) - (574) (597) -(606) (I) * (598) (534) -(607) (I) + (500) (606) -(619) (L) X·MATRIX·FP64·false -(620) (I) r' (619) -(608) (I) * (598) (544) -(609) (I) + (502) (608) -(610) (I) 1-* (42) (609) -(611) (I) max (610) (53) -(621) (I) * (611) (42) -(622) (I) ba+* (620) (621) -(623) (I) - (622) (607) -(635) (I) ^2 (623) (8) -(636) (I) uak+ (635) -(637) (I) ^2 (516) (8) -(638) (I) uak+ (637) -(639) (I) / (636) (638) -(640) (I) * (639) (534) -(641) (I) + (640) (623) -(652) (I) * (607) (641) -(653) (I) uak+ (652) -(654) (I) * (32) (653) -(655) (I) ^2 (641) (8) -(656) (I) uak+ (655) -(657) (I) * (32) (656) -(665) (I) * (53) (657) -(666) (I) + (654) (665) -(650) (L) X·MATRIX·FP64·false -(651) (I) ba+* (650) (641) -(667) (I) * (53) (651) -(668) (I) + (609) (667) -(669) (I) 1-* (42) (668) -(670) (I) max (669) (53) -(671) (I) * (670) (42) -(672) (I) * (671) (651) -(673) (I) uak+ (672) -(674) (I) - (666) (673) -(675) (I) > (669) (53) -(676) (I) * (651) (675) -(677) (I) * (676) (651) -(678) (I) uak+ (677) -(679) (I) + (657) (678) -(680) (I) / (674) (679) -(681) (I) - (53) (680) -(689) (I) * (681) (657) -(690) (I) + (654) (689) -(691) (I) * (681) (651) -(692) (I) + (609) (691) -(693) (I) 1-* (42) (692) -(694) (I) max (693) (53) -(695) (I) * (694) (42) -(696) (I) * (695) (651) -(697) (I) uak+ (696) -(698) (I) - (690) (697) -(699) (I) > (693) (53) -(700) (I) * (651) (699) -(701) (I) * (700) (651) -(702) (I) uak+ (701) -(703) (I) + (657) (702) -(704) (I) / (698) (703) -(705) (I) - (681) (704) -(713) (I) * (705) (657) -(714) (I) + (654) (713) -(715) (I) * (705) (651) -(716) (I) + (609) (715) -(717) (I) 1-* (42) (716) -(718) (I) max (717) (53) -(719) (I) * (718) (42) -(720) (I) * (719) (651) -(721) (I) uak+ (720) -(722) (I) - (714) (721) -(723) (I) > (717) (53) -(724) (I) * (651) (723) -(725) (I) * (724) (651) -(726) (I) uak+ (725) -(727) (I) + (657) (726) -(728) (I) / (722) (727) -(729) (I) - (705) (728) -(737) (I) * (729) (641) -(738) (I) + (607) (737) -(750) (L) X·MATRIX·FP64·false -(751) (I) r' (750) -(739) (I) * (729) (651) -(740) (I) + (609) (739) -(741) (I) 1-* (42) (740) -(742) (I) max (741) (53) -(752) (I) * (742) (42) -(753) (I) ba+* (751) (752) -(754) (I) - (753) (738) -(766) (I) ^2 (754) (8) -(767) (I) uak+ (766) -(768) (I) ^2 (623) (8) -(769) (I) uak+ (768) -(770) (I) / (767) (769) -(771) (I) * (770) (641) -(772) (I) + (771) (754) -(783) (I) * (738) (772) -(784) (I) uak+ (783) -(785) (I) * (32) (784) -(786) (I) ^2 (772) (8) -(787) (I) uak+ (786) -(788) (I) * (32) (787) -(796) (I) * (53) (788) -(797) (I) + (785) (796) -(781) (L) X·MATRIX·FP64·false -(782) (I) ba+* (781) (772) -(798) (I) * (53) (782) -(799) (I) + (740) (798) -(800) (I) 1-* (42) (799) -(801) (I) max (800) (53) -(802) (I) * (801) (42) -(803) (I) * (802) (782) -(804) (I) uak+ (803) -(805) (I) - (797) (804) -(806) (I) > (800) (53) -(807) (I) * (782) (806) -(808) (I) * (807) (782) -(809) (I) uak+ (808) -(810) (I) + (788) (809) -(811) (I) / (805) (810) -(812) (I) - (53) (811) -(820) (I) * (812) (788) -(821) (I) + (785) (820) -(822) (I) * (812) (782) -(823) (I) + (740) (822) -(824) (I) 1-* (42) (823) -(825) (I) max (824) (53) -(826) (I) * (825) (42) -(827) (I) * (826) (782) -(828) (I) uak+ (827) -(829) (I) - (821) (828) -(830) (I) > (824) (53) -(831) (I) * (782) (830) -(832) (I) * (831) (782) -(833) (I) uak+ (832) -(834) (I) + (788) (833) -(835) (I) / (829) (834) -(836) (I) - (812) (835) -(844) (I) * (836) (772) -(845) (I) + (738) (844) -(857) (L) X·MATRIX·FP64·false -(858) (I) r' (857) -(846) (I) * (836) (782) -(847) (I) + (740) (846) -(848) (I) 1-* (42) (847) -(849) (I) max (848) (53) -(859) (I) * (849) (42) -(860) (I) ba+* (858) (859) -(861) (I) - (860) (845) -(873) (I) ^2 (861) (8) -(874) (I) uak+ (873) -(875) (I) ^2 (754) (8) -(876) (I) uak+ (875) -(877) (I) / (874) (876) -(878) (I) * (877) (772) -(879) (I) + (878) (861) -(890) (I) * (845) (879) -(891) (I) uak+ (890) -(892) (I) * (32) (891) -(893) (I) ^2 (879) (8) -(894) (I) uak+ (893) -(895) (I) * (32) (894) -(903) (I) * (53) (895) -(904) (I) + (892) (903) -(888) (L) X·MATRIX·FP64·false -(889) (I) ba+* (888) (879) -(905) (I) * (53) (889) -(906) (I) + (847) (905) -(907) (I) 1-* (42) (906) -(908) (I) max (907) (53) -(909) (I) * (908) (42) -(910) (I) * (909) (889) -(911) (I) uak+ (910) -(912) (I) - (904) (911) -(913) (I) > (907) (53) -(914) (I) * (889) (913) -(915) (I) * (914) (889) -(916) (I) uak+ (915) -(917) (I) + (895) (916) -(918) (I) / (912) (917) -(919) (I) - (53) (918) -(927) (I) * (919) (895) -(928) (I) + (892) (927) -(929) (I) * (919) (889) -(930) (I) + (847) (929) -(931) (I) 1-* (42) (930) -(932) (I) max (931) (53) -(933) (I) * (932) (42) -(934) (I) * (933) (889) -(935) (I) uak+ (934) -(936) (I) - (928) (935) -(937) (I) > (931) (53) -(938) (I) * (889) (937) -(939) (I) * (938) (889) -(940) (I) uak+ (939) -(941) (I) + (895) (940) -(942) (I) / (936) (941) -(943) (I) - (919) (942) -(951) (I) * (943) (895) -(952) (I) + (892) (951) -(953) (I) * (943) (889) -(954) (I) + (847) (953) -(955) (I) 1-* (42) (954) -(956) (I) max (955) (53) -(957) (I) * (956) (42) -(958) (I) * (957) (889) -(959) (I) uak+ (958) -(960) (I) - (952) (959) -(961) (I) > (955) (53) -(962) (I) * (889) (961) -(963) (I) * (962) (889) -(964) (I) uak+ (963) -(965) (I) + (895) (964) -(966) (I) / (960) (965) -(967) (I) - (943) (966) -(975) (I) * (967) (895) -(976) (I) + (892) (975) -(977) (I) * (967) (889) -(978) (I) + (847) (977) -(979) (I) 1-* (42) (978) -(980) (I) max (979) (53) -(981) (I) * (980) (42) -(982) (I) * (981) (889) -(983) (I) uak+ (982) -(984) (I) - (976) (983) -(985) (I) > (979) (53) -(986) (I) * (889) (985) -(987) (I) * (986) (889) -(988) (I) uak+ (987) -(989) (I) + (895) (988) -(990) (I) / (984) (989) -(991) (I) - (967) (990) -(999) (I) * (991) (879) -(1000) (I) + (845) (999) -(1012) (L) X·MATRIX·FP64·false -(1013) (I) r' (1012) -(1001) (I) * (991) (889) -(1002) (I) + (847) (1001) -(1003) (I) 1-* (42) (1002) -(1004) (I) max (1003) (53) -(1014) (I) * (1004) (42) -(1015) (I) ba+* (1013) (1014) -(1016) (I) - (1015) (1000) -(1028) (I) ^2 (1016) (8) -(1029) (I) uak+ (1028) -(1030) (I) ^2 (861) (8) -(1031) (I) uak+ (1030) -(1032) (I) / (1029) (1031) -(1033) (I) * (1032) (879) -(1034) (I) + (1033) (1016) -(1045) (I) * (1000) (1034) -(1046) (I) uak+ (1045) -(1047) (I) * (32) (1046) -(1048) (I) ^2 (1034) (8) -(1049) (I) uak+ (1048) -(1050) (I) * (32) (1049) -(1058) (I) * (53) (1050) -(1059) (I) + (1047) (1058) -(1043) (L) X·MATRIX·FP64·false -(1044) (I) ba+* (1043) (1034) -(1060) (I) * (53) (1044) -(1061) (I) + (1002) (1060) -(1062) (I) 1-* (42) (1061) -(1063) (I) max (1062) (53) -(1064) (I) * (1063) (42) -(1065) (I) * (1064) (1044) -(1066) (I) uak+ (1065) -(1067) (I) - (1059) (1066) -(1068) (I) > (1062) (53) -(1069) (I) * (1044) (1068) -(1070) (I) * (1069) (1044) -(1071) (I) uak+ (1070) -(1072) (I) + (1050) (1071) -(1073) (I) / (1067) (1072) -(1074) (I) - (53) (1073) -(1082) (I) * (1074) (1050) -(1083) (I) + (1047) (1082) -(1084) (I) * (1074) (1044) -(1085) (I) + (1002) (1084) -(1086) (I) 1-* (42) (1085) -(1087) (I) max (1086) (53) -(1088) (I) * (1087) (42) -(1089) (I) * (1088) (1044) -(1090) (I) uak+ (1089) -(1091) (I) - (1083) (1090) -(1092) (I) > (1086) (53) -(1093) (I) * (1044) (1092) -(1094) (I) * (1093) (1044) -(1095) (I) uak+ (1094) -(1096) (I) + (1050) (1095) -(1097) (I) / (1091) (1096) -(1098) (I) - (1074) (1097) -(1106) (I) * (1098) (1050) -(1107) (I) + (1047) (1106) -(1108) (I) * (1098) (1044) -(1109) (I) + (1002) (1108) -(1110) (I) 1-* (42) (1109) -(1111) (I) max (1110) (53) -(1112) (I) * (1111) (42) -(1113) (I) * (1112) (1044) -(1114) (I) uak+ (1113) -(1115) (I) - (1107) (1114) -(1116) (I) > (1110) (53) -(1117) (I) * (1044) (1116) -(1118) (I) * (1117) (1044) -(1119) (I) uak+ (1118) -(1120) (I) + (1050) (1119) -(1121) (I) / (1115) (1120) -(1122) (I) - (1098) (1121) -(1130) (I) * (1122) (1034) -(1131) (I) + (1000) (1130) -(1143) (L) X·MATRIX·FP64·false -(1144) (I) r' (1143) -(1132) (I) * (1122) (1044) -(1133) (I) + (1002) (1132) -(1134) (I) 1-* (42) (1133) -(1135) (I) max (1134) (53) -(1145) (I) * (1135) (42) -(1146) (I) ba+* (1144) (1145) -(1147) (I) - (1146) (1131) -(1159) (I) ^2 (1147) (8) -(1160) (I) uak+ (1159) -(1161) (I) ^2 (1016) (8) -(1162) (I) uak+ (1161) -(1163) (I) / (1160) (1162) -(1164) (I) * (1163) (1034) -(1165) (I) + (1164) (1147) -(1176) (I) * (1131) (1165) -(1177) (I) uak+ (1176) -(1178) (I) * (32) (1177) -(1179) (I) ^2 (1165) (8) -(1180) (I) uak+ (1179) -(1181) (I) * (32) (1180) -(1189) (I) * (53) (1181) -(1190) (I) + (1178) (1189) -(1174) (L) X·MATRIX·FP64·false -(1175) (I) ba+* (1174) (1165) -(1191) (I) * (53) (1175) -(1192) (I) + (1133) (1191) -(1193) (I) 1-* (42) (1192) -(1194) (I) max (1193) (53) -(1195) (I) * (1194) (42) -(1196) (I) * (1195) (1175) -(1197) (I) uak+ (1196) -(1198) (I) - (1190) (1197) -(1199) (I) > (1193) (53) -(1200) (I) * (1175) (1199) -(1201) (I) * (1200) (1175) -(1202) (I) uak+ (1201) -(1203) (I) + (1181) (1202) -(1204) (I) / (1198) (1203) -(1205) (I) - (53) (1204) -(1213) (I) * (1205) (1181) -(1214) (I) + (1178) (1213) -(1215) (I) * (1205) (1175) -(1216) (I) + (1133) (1215) -(1217) (I) 1-* (42) (1216) -(1218) (I) max (1217) (53) -(1219) (I) * (1218) (42) -(1220) (I) * (1219) (1175) -(1221) (I) uak+ (1220) -(1222) (I) - (1214) (1221) -(1223) (I) > (1217) (53) -(1224) (I) * (1175) (1223) -(1225) (I) * (1224) (1175) -(1226) (I) uak+ (1225) -(1227) (I) + (1181) (1226) -(1228) (I) / (1222) (1227) -(1229) (I) - (1205) (1228) -(1237) (I) * (1229) (1165) -(1238) (I) + (1131) (1237) -(1250) (L) X·MATRIX·FP64·false -(1251) (I) r' (1250) -(1239) (I) * (1229) (1175) -(1240) (I) + (1133) (1239) -(1241) (I) 1-* (42) (1240) -(1242) (I) max (1241) (53) -(1252) (I) * (1242) (42) -(1253) (I) ba+* (1251) (1252) -(1254) (I) - (1253) (1238) -(1266) (I) ^2 (1254) (8) -(1267) (I) uak+ (1266) -(1268) (I) ^2 (1147) (8) -(1269) (I) uak+ (1268) -(1270) (I) / (1267) (1269) -(1271) (I) * (1270) (1165) -(1272) (I) + (1271) (1254) -(1283) (I) * (1238) (1272) -(1284) (I) uak+ (1283) -(1285) (I) * (32) (1284) -(1286) (I) ^2 (1272) (8) -(1287) (I) uak+ (1286) -(1288) (I) * (32) (1287) -(1296) (I) * (53) (1288) -(1297) (I) + (1285) (1296) -(1281) (L) X·MATRIX·FP64·false -(1282) (I) ba+* (1281) (1272) -(1298) (I) * (53) (1282) -(1299) (I) + (1240) (1298) -(1300) (I) 1-* (42) (1299) -(1301) (I) max (1300) (53) -(1302) (I) * (1301) (42) -(1303) (I) * (1302) (1282) -(1304) (I) uak+ (1303) -(1305) (I) - (1297) (1304) -(1306) (I) > (1300) (53) -(1307) (I) * (1282) (1306) -(1308) (I) * (1307) (1282) -(1309) (I) uak+ (1308) -(1310) (I) + (1288) (1309) -(1311) (I) / (1305) (1310) -(1312) (I) - (53) (1311) -(1320) (I) * (1312) (1288) -(1321) (I) + (1285) (1320) -(1322) (I) * (1312) (1282) -(1323) (I) + (1240) (1322) -(1324) (I) 1-* (42) (1323) -(1325) (I) max (1324) (53) -(1326) (I) * (1325) (42) -(1327) (I) * (1326) (1282) -(1328) (I) uak+ (1327) -(1329) (I) - (1321) (1328) -(1330) (I) > (1324) (53) -(1331) (I) * (1282) (1330) -(1332) (I) * (1331) (1282) -(1333) (I) uak+ (1332) -(1334) (I) + (1288) (1333) -(1335) (I) / (1329) (1334) -(1336) (I) - (1312) (1335) -(1344) (I) * (1336) (1272) -(1345) (I) + (1238) (1344) -(1357) (L) X·MATRIX·FP64·false -(1358) (I) r' (1357) -(1346) (I) * (1336) (1282) -(1347) (I) + (1240) (1346) -(1348) (I) 1-* (42) (1347) -(1349) (I) max (1348) (53) -(1359) (I) * (1349) (42) -(1360) (I) ba+* (1358) (1359) -(1361) (I) - (1360) (1345) -(1373) (I) ^2 (1361) (8) -(1374) (I) uak+ (1373) -(1375) (I) ^2 (1254) (8) -(1376) (I) uak+ (1375) -(1377) (I) / (1374) (1376) -(1378) (I) * (1377) (1272) -(1379) (I) + (1378) (1361) -(1390) (I) * (1345) (1379) -(1391) (I) uak+ (1390) -(1392) (I) * (32) (1391) -(1393) (I) ^2 (1379) (8) -(1394) (I) uak+ (1393) -(1395) (I) * (32) (1394) -(1403) (I) * (53) (1395) -(1404) (I) + (1392) (1403) -(1388) (L) X·MATRIX·FP64·false -(1389) (I) ba+* (1388) (1379) -(1405) (I) * (53) (1389) -(1406) (I) + (1347) (1405) -(1407) (I) 1-* (42) (1406) -(1408) (I) max (1407) (53) -(1409) (I) * (1408) (42) -(1410) (I) * (1409) (1389) -(1411) (I) uak+ (1410) -(1412) (I) - (1404) (1411) -(1413) (I) > (1407) (53) -(1414) (I) * (1389) (1413) -(1415) (I) * (1414) (1389) -(1416) (I) uak+ (1415) -(1417) (I) + (1395) (1416) -(1418) (I) / (1412) (1417) -(1419) (I) - (53) (1418) -(1427) (I) * (1419) (1395) -(1428) (I) + (1392) (1427) -(1429) (I) * (1419) (1389) -(1430) (I) + (1347) (1429) -(1431) (I) 1-* (42) (1430) -(1432) (I) max (1431) (53) -(1433) (I) * (1432) (42) -(1434) (I) * (1433) (1389) -(1435) (I) uak+ (1434) -(1436) (I) - (1428) (1435) -(1437) (I) > (1431) (53) -(1438) (I) * (1389) (1437) -(1439) (I) * (1438) (1389) -(1440) (I) uak+ (1439) -(1441) (I) + (1395) (1440) -(1442) (I) / (1436) (1441) -(1443) (I) - (1419) (1442) -(1451) (I) * (1443) (1395) -(1452) (I) + (1392) (1451) -(1453) (I) * (1443) (1389) -(1454) (I) + (1347) (1453) -(1455) (I) 1-* (42) (1454) -(1456) (I) max (1455) (53) -(1457) (I) * (1456) (42) -(1458) (I) * (1457) (1389) -(1459) (I) uak+ (1458) -(1460) (I) - (1452) (1459) -(1461) (I) > (1455) (53) -(1462) (I) * (1389) (1461) -(1463) (I) * (1462) (1389) -(1464) (I) uak+ (1463) -(1465) (I) + (1395) (1464) -(1466) (I) / (1460) (1465) -(1467) (I) - (1443) (1466) -(1475) (I) * (1467) (1379) -(1476) (I) + (1345) (1475) -(1488) (L) X·MATRIX·FP64·false -(1489) (I) r' (1488) -(1477) (I) * (1467) (1389) -(1478) (I) + (1347) (1477) -(1479) (I) 1-* (42) (1478) -(1480) (I) max (1479) (53) -(1490) (I) * (1480) (42) -(1491) (I) ba+* (1489) (1490) -(1492) (I) - (1491) (1476) -(1504) (I) ^2 (1492) (8) -(1505) (I) uak+ (1504) -(1506) (I) ^2 (1361) (8) -(1507) (I) uak+ (1506) -(1508) (I) / (1505) (1507) -(1509) (I) * (1508) (1379) -(1510) (I) + (1509) (1492) -(1521) (I) * (1476) (1510) -(1522) (I) uak+ (1521) -(1523) (I) * (32) (1522) -(1524) (I) ^2 (1510) (8) -(1525) (I) uak+ (1524) -(1526) (I) * (32) (1525) -(1534) (I) * (53) (1526) -(1535) (I) + (1523) (1534) -(1519) (L) X·MATRIX·FP64·false -(1520) (I) ba+* (1519) (1510) -(1536) (I) * (53) (1520) -(1537) (I) + (1478) (1536) -(1538) (I) 1-* (42) (1537) -(1539) (I) max (1538) (53) -(1540) (I) * (1539) (42) -(1541) (I) * (1540) (1520) -(1542) (I) uak+ (1541) -(1543) (I) - (1535) (1542) -(1544) (I) > (1538) (53) -(1545) (I) * (1520) (1544) -(1546) (I) * (1545) (1520) -(1547) (I) uak+ (1546) -(1548) (I) + (1526) (1547) -(1549) (I) / (1543) (1548) -(1550) (I) - (53) (1549) -(1558) (I) * (1550) (1526) -(1559) (I) + (1523) (1558) -(1560) (I) * (1550) (1520) -(1561) (I) + (1478) (1560) -(1562) (I) 1-* (42) (1561) -(1563) (I) max (1562) (53) -(1564) (I) * (1563) (42) -(1565) (I) * (1564) (1520) -(1566) (I) uak+ (1565) -(1567) (I) - (1559) (1566) -(1568) (I) > (1562) (53) -(1569) (I) * (1520) (1568) -(1570) (I) * (1569) (1520) -(1571) (I) uak+ (1570) -(1572) (I) + (1526) (1571) -(1573) (I) / (1567) (1572) -(1574) (I) - (1550) (1573) -(1582) (I) * (1574) (1510) -(1583) (I) + (1476) (1582) -(1595) (L) X·MATRIX·FP64·false -(1596) (I) r' (1595) -(1584) (I) * (1574) (1520) -(1585) (I) + (1478) (1584) -(1586) (I) 1-* (42) (1585) -(1587) (I) max (1586) (53) -(1597) (I) * (1587) (42) -(1598) (I) ba+* (1596) (1597) -(1599) (I) - (1598) (1583) -(1611) (I) ^2 (1599) (8) -(1612) (I) uak+ (1611) -(1613) (I) ^2 (1492) (8) -(1614) (I) uak+ (1613) -(1615) (I) / (1612) (1614) -(1616) (I) * (1615) (1510) -(1617) (I) + (1616) (1599) -(1628) (I) * (1583) (1617) -(1629) (I) uak+ (1628) -(1630) (I) * (32) (1629) -(1631) (I) ^2 (1617) (8) -(1632) (I) uak+ (1631) -(1633) (I) * (32) (1632) -(1641) (I) * (53) (1633) -(1642) (I) + (1630) (1641) -(1626) (L) X·MATRIX·FP64·false -(1627) (I) ba+* (1626) (1617) -(1643) (I) * (53) (1627) -(1644) (I) + (1585) (1643) -(1645) (I) 1-* (42) (1644) -(1646) (I) max (1645) (53) -(1647) (I) * (1646) (42) -(1648) (I) * (1647) (1627) -(1649) (I) uak+ (1648) -(1650) (I) - (1642) (1649) -(1651) (I) > (1645) (53) -(1652) (I) * (1627) (1651) -(1653) (I) * (1652) (1627) -(1654) (I) uak+ (1653) -(1655) (I) + (1633) (1654) -(1656) (I) / (1650) (1655) -(1657) (I) - (53) (1656) -(1665) (I) * (1657) (1633) -(1666) (I) + (1630) (1665) -(1667) (I) * (1657) (1627) -(1668) (I) + (1585) (1667) -(1669) (I) 1-* (42) (1668) -(1670) (I) max (1669) (53) -(1671) (I) * (1670) (42) -(1672) (I) * (1671) (1627) -(1673) (I) uak+ (1672) -(1674) (I) - (1666) (1673) -(1675) (I) > (1669) (53) -(1676) (I) * (1627) (1675) -(1677) (I) * (1676) (1627) -(1678) (I) uak+ (1677) -(1679) (I) + (1633) (1678) -(1680) (I) / (1674) (1679) -(1681) (I) - (1657) (1680) -(1689) (I) * (1681) (1617) -(1690) (I) + (1583) (1689) -(1702) (L) X·MATRIX·FP64·false -(1703) (I) r' (1702) -(1691) (I) * (1681) (1627) -(1692) (I) + (1585) (1691) -(1693) (I) 1-* (42) (1692) -(1694) (I) max (1693) (53) -(1704) (I) * (1694) (42) -(1705) (I) ba+* (1703) (1704) -(1706) (I) - (1705) (1690) -(1718) (I) ^2 (1706) (8) -(1719) (I) uak+ (1718) -(1720) (I) ^2 (1599) (8) -(1721) (I) uak+ (1720) -(1722) (I) / (1719) (1721) -(1723) (I) * (1722) (1617) -(1724) (I) + (1723) (1706) -(1735) (I) * (1690) (1724) -(1736) (I) uak+ (1735) -(1737) (I) * (32) (1736) -(1738) (I) ^2 (1724) (8) -(1739) (I) uak+ (1738) -(1740) (I) * (32) (1739) -(1748) (I) * (53) (1740) -(1749) (I) + (1737) (1748) -(1733) (L) X·MATRIX·FP64·false -(1734) (I) ba+* (1733) (1724) -(1750) (I) * (53) (1734) -(1751) (I) + (1692) (1750) -(1752) (I) 1-* (42) (1751) -(1753) (I) max (1752) (53) -(1754) (I) * (1753) (42) -(1755) (I) * (1754) (1734) -(1756) (I) uak+ (1755) -(1757) (I) - (1749) (1756) -(1758) (I) > (1752) (53) -(1759) (I) * (1734) (1758) -(1760) (I) * (1759) (1734) -(1761) (I) uak+ (1760) -(1762) (I) + (1740) (1761) -(1763) (I) / (1757) (1762) -(1764) (I) - (53) (1763) -(1772) (I) * (1764) (1740) -(1773) (I) + (1737) (1772) -(1774) (I) * (1764) (1734) -(1775) (I) + (1692) (1774) -(1776) (I) 1-* (42) (1775) -(1777) (I) max (1776) (53) -(1778) (I) * (1777) (42) -(1779) (I) * (1778) (1734) -(1780) (I) uak+ (1779) -(1781) (I) - (1773) (1780) -(1782) (I) > (1776) (53) -(1783) (I) * (1734) (1782) -(1784) (I) * (1783) (1734) -(1785) (I) uak+ (1784) -(1786) (I) + (1740) (1785) -(1787) (I) / (1781) (1786) -(1788) (I) - (1764) (1787) -(1796) (I) * (1788) (1724) -(1797) (I) + (1690) (1796) -(1809) (L) X·MATRIX·FP64·false -(1810) (I) r' (1809) -(1798) (I) * (1788) (1734) -(1799) (I) + (1692) (1798) -(1800) (I) 1-* (42) (1799) -(1801) (I) max (1800) (53) -(1811) (I) * (1801) (42) -(1812) (I) ba+* (1810) (1811) -(1813) (I) - (1812) (1797) -(1825) (I) ^2 (1813) (8) -(1826) (I) uak+ (1825) -(1827) (I) ^2 (1706) (8) -(1828) (I) uak+ (1827) -(1829) (I) / (1826) (1828) -(1830) (I) * (1829) (1724) -(1831) (I) + (1830) (1813) -(1842) (I) * (1797) (1831) -(1843) (I) uak+ (1842) -(1844) (I) * (32) (1843) -(1845) (I) ^2 (1831) (8) -(1846) (I) uak+ (1845) -(1847) (I) * (32) (1846) -(1855) (I) * (53) (1847) -(1856) (I) + (1844) (1855) -(1840) (L) X·MATRIX·FP64·false -(1841) (I) ba+* (1840) (1831) -(1857) (I) * (53) (1841) -(1858) (I) + (1799) (1857) -(1859) (I) 1-* (42) (1858) -(1860) (I) max (1859) (53) -(1861) (I) * (1860) (42) -(1862) (I) * (1861) (1841) -(1863) (I) uak+ (1862) -(1864) (I) - (1856) (1863) -(1865) (I) > (1859) (53) -(1866) (I) * (1841) (1865) -(1867) (I) * (1866) (1841) -(1868) (I) uak+ (1867) -(1869) (I) + (1847) (1868) -(1870) (I) / (1864) (1869) -(1871) (I) - (53) (1870) -(1879) (I) * (1871) (1847) -(1880) (I) + (1844) (1879) -(1881) (I) * (1871) (1841) -(1882) (I) + (1799) (1881) -(1883) (I) 1-* (42) (1882) -(1884) (I) max (1883) (53) -(1885) (I) * (1884) (42) -(1886) (I) * (1885) (1841) -(1887) (I) uak+ (1886) -(1888) (I) - (1880) (1887) -(1889) (I) > (1883) (53) -(1890) (I) * (1841) (1889) -(1891) (I) * (1890) (1841) -(1892) (I) uak+ (1891) -(1893) (I) + (1847) (1892) -(1894) (I) / (1888) (1893) -(1895) (I) - (1871) (1894) -(1903) (I) * (1895) (1831) -(1904) (I) + (1797) (1903) -(1916) (L) X·MATRIX·FP64·false -(1917) (I) r' (1916) -(1905) (I) * (1895) (1841) -(1906) (I) + (1799) (1905) -(1907) (I) 1-* (42) (1906) -(1908) (I) max (1907) (53) -(1918) (I) * (1908) (42) -(1919) (I) ba+* (1917) (1918) -(1920) (I) - (1919) (1904) -(1932) (I) ^2 (1920) (8) -(1933) (I) uak+ (1932) -(1934) (I) ^2 (1813) (8) -(1935) (I) uak+ (1934) -(1936) (I) / (1933) (1935) -(1937) (I) * (1936) (1831) -(1938) (I) + (1937) (1920) -(1949) (I) * (1904) (1938) -(1950) (I) uak+ (1949) -(1951) (I) * (32) (1950) -(1952) (I) ^2 (1938) (8) -(1953) (I) uak+ (1952) -(1954) (I) * (32) (1953) -(1962) (I) * (53) (1954) -(1963) (I) + (1951) (1962) -(1947) (L) X·MATRIX·FP64·false -(1948) (I) ba+* (1947) (1938) -(1964) (I) * (53) (1948) -(1965) (I) + (1906) (1964) -(1966) (I) 1-* (42) (1965) -(1967) (I) max (1966) (53) -(1968) (I) * (1967) (42) -(1969) (I) * (1968) (1948) -(1970) (I) uak+ (1969) -(1971) (I) - (1963) (1970) -(1972) (I) > (1966) (53) -(1973) (I) * (1948) (1972) -(1974) (I) * (1973) (1948) -(1975) (I) uak+ (1974) -(1976) (I) + (1954) (1975) -(1977) (I) / (1971) (1976) -(1978) (I) - (53) (1977) -(1986) (I) * (1978) (1954) -(1987) (I) + (1951) (1986) -(1988) (I) * (1978) (1948) -(1989) (I) + (1906) (1988) -(1990) (I) 1-* (42) (1989) -(1991) (I) max (1990) (53) -(1992) (I) * (1991) (42) -(1993) (I) * (1992) (1948) -(1994) (I) uak+ (1993) -(1995) (I) - (1987) (1994) -(1996) (I) > (1990) (53) -(1997) (I) * (1948) (1996) -(1998) (I) * (1997) (1948) -(1999) (I) uak+ (1998) -(2000) (I) + (1954) (1999) -(2001) (I) / (1995) (2000) -(2002) (I) - (1978) (2001) -(2010) (I) * (2002) (1938) -(2011) (I) + (1904) (2010) -(2023) (L) X·MATRIX·FP64·false -(2024) (I) r' (2023) -(2012) (I) * (2002) (1948) -(2013) (I) + (1906) (2012) -(2014) (I) 1-* (42) (2013) -(2015) (I) max (2014) (53) -(2025) (I) * (2015) (42) -(2026) (I) ba+* (2024) (2025) -(2027) (I) - (2026) (2011) -(2039) (I) ^2 (2027) (8) -(2040) (I) uak+ (2039) -(2041) (I) ^2 (1920) (8) -(2042) (I) uak+ (2041) -(2043) (I) / (2040) (2042) -(2044) (I) * (2043) (1938) -(2045) (I) + (2044) (2027) -(2056) (I) * (2011) (2045) -(2057) (I) uak+ (2056) -(2058) (I) * (32) (2057) -(2059) (I) ^2 (2045) (8) -(2060) (I) uak+ (2059) -(2061) (I) * (32) (2060) -(2069) (I) * (53) (2061) -(2070) (I) + (2058) (2069) -(2054) (L) X·MATRIX·FP64·false -(2055) (I) ba+* (2054) (2045) -(2071) (I) * (53) (2055) -(2072) (I) + (2013) (2071) -(2073) (I) 1-* (42) (2072) -(2074) (I) max (2073) (53) -(2075) (I) * (2074) (42) -(2076) (I) * (2075) (2055) -(2077) (I) uak+ (2076) -(2078) (I) - (2070) (2077) -(2079) (I) > (2073) (53) -(2080) (I) * (2055) (2079) -(2081) (I) * (2080) (2055) -(2082) (I) uak+ (2081) -(2083) (I) + (2061) (2082) -(2084) (I) / (2078) (2083) -(2085) (I) - (53) (2084) -(2093) (I) * (2085) (2061) -(2094) (I) + (2058) (2093) -(2095) (I) * (2085) (2055) -(2096) (I) + (2013) (2095) -(2097) (I) 1-* (42) (2096) -(2098) (I) max (2097) (53) -(2099) (I) * (2098) (42) -(2100) (I) * (2099) (2055) -(2101) (I) uak+ (2100) -(2102) (I) - (2094) (2101) -(2103) (I) > (2097) (53) -(2104) (I) * (2055) (2103) -(2105) (I) * (2104) (2055) -(2106) (I) uak+ (2105) -(2107) (I) + (2061) (2106) -(2108) (I) / (2102) (2107) -(2109) (I) - (2085) (2108) -(2117) (I) * (2109) (2045) -(2118) (I) + (2011) (2117) -(2130) (L) X·MATRIX·FP64·false -(2131) (I) r' (2130) -(2119) (I) * (2109) (2055) -(2120) (I) + (2013) (2119) -(2121) (I) 1-* (42) (2120) -(2122) (I) max (2121) (53) -(2132) (I) * (2122) (42) -(2133) (I) ba+* (2131) (2132) -(2134) (I) - (2133) (2118) -(2146) (I) ^2 (2134) (8) -(2147) (I) uak+ (2146) -(2148) (I) ^2 (2027) (8) -(2149) (I) uak+ (2148) -(2150) (I) / (2147) (2149) -(2151) (I) * (2150) (2045) -(2152) (I) + (2151) (2134) -(2163) (I) * (2118) (2152) -(2164) (I) uak+ (2163) -(2165) (I) * (32) (2164) -(2166) (I) ^2 (2152) (8) -(2167) (I) uak+ (2166) -(2168) (I) * (32) (2167) -(2176) (I) * (53) (2168) -(2177) (I) + (2165) (2176) -(2161) (L) X·MATRIX·FP64·false -(2162) (I) ba+* (2161) (2152) -(2178) (I) * (53) (2162) -(2179) (I) + (2120) (2178) -(2180) (I) 1-* (42) (2179) -(2181) (I) max (2180) (53) -(2182) (I) * (2181) (42) -(2183) (I) * (2182) (2162) -(2184) (I) uak+ (2183) -(2185) (I) - (2177) (2184) -(2186) (I) > (2180) (53) -(2187) (I) * (2162) (2186) -(2188) (I) * (2187) (2162) -(2189) (I) uak+ (2188) -(2190) (I) + (2168) (2189) -(2191) (I) / (2185) (2190) -(2192) (I) - (53) (2191) -(2200) (I) * (2192) (2168) -(2201) (I) + (2165) (2200) -(2202) (I) * (2192) (2162) -(2203) (I) + (2120) (2202) -(2204) (I) 1-* (42) (2203) -(2205) (I) max (2204) (53) -(2206) (I) * (2205) (42) -(2207) (I) * (2206) (2162) -(2208) (I) uak+ (2207) -(2209) (I) - (2201) (2208) -(2210) (I) > (2204) (53) -(2211) (I) * (2162) (2210) -(2212) (I) * (2211) (2162) -(2213) (I) uak+ (2212) -(2214) (I) + (2168) (2213) -(2215) (I) / (2209) (2214) -(2216) (I) - (2192) (2215) -(2224) (I) * (2216) (2152) -(2225) (I) + (2118) (2224) -(2237) (L) X·MATRIX·FP64·false -(2238) (I) r' (2237) -(2226) (I) * (2216) (2162) -(2227) (I) + (2120) (2226) -(2228) (I) 1-* (42) (2227) -(2229) (I) max (2228) (53) -(2239) (I) * (2229) (42) -(2240) (I) ba+* (2238) (2239) -(2241) (I) - (2240) (2225) -(2253) (I) ^2 (2241) (8) -(2254) (I) uak+ (2253) -(2255) (I) ^2 (2134) (8) -(2256) (I) uak+ (2255) -(2257) (I) / (2254) (2256) -(2258) (I) * (2257) (2152) -(2259) (I) + (2258) (2241) -(2270) (I) * (2225) (2259) -(2271) (I) uak+ (2270) -(2272) (I) * (32) (2271) -(2273) (I) ^2 (2259) (8) -(2274) (I) uak+ (2273) -(2275) (I) * (32) (2274) -(2283) (I) * (53) (2275) -(2284) (I) + (2272) (2283) -(2268) (L) X·MATRIX·FP64·false -(2269) (I) ba+* (2268) (2259) -(2285) (I) * (53) (2269) -(2286) (I) + (2227) (2285) -(2287) (I) 1-* (42) (2286) -(2288) (I) max (2287) (53) -(2289) (I) * (2288) (42) -(2290) (I) * (2289) (2269) -(2291) (I) uak+ (2290) -(2292) (I) - (2284) (2291) -(2293) (I) > (2287) (53) -(2294) (I) * (2269) (2293) -(2295) (I) * (2294) (2269) -(2296) (I) uak+ (2295) -(2297) (I) + (2275) (2296) -(2298) (I) / (2292) (2297) -(2299) (I) - (53) (2298) -(2307) (I) * (2299) (2275) -(2308) (I) + (2272) (2307) -(2309) (I) * (2299) (2269) -(2310) (I) + (2227) (2309) -(2311) (I) 1-* (42) (2310) -(2312) (I) max (2311) (53) -(2313) (I) * (2312) (42) -(2314) (I) * (2313) (2269) -(2315) (I) uak+ (2314) -(2316) (I) - (2308) (2315) -(2317) (I) > (2311) (53) -(2318) (I) * (2269) (2317) -(2319) (I) * (2318) (2269) -(2320) (I) uak+ (2319) -(2321) (I) + (2275) (2320) -(2322) (I) / (2316) (2321) -(2323) (I) - (2299) (2322) -(2331) (I) * (2323) (2259) -(2332) (I) + (2225) (2331) -(2344) (L) X·MATRIX·FP64·false -(2345) (I) r' (2344) -(2333) (I) * (2323) (2269) -(2334) (I) + (2227) (2333) -(2335) (I) 1-* (42) (2334) -(2336) (I) max (2335) (53) -(2346) (I) * (2336) (42) -(2347) (I) ba+* (2345) (2346) -(2348) (I) - (2347) (2332) -(2360) (I) ^2 (2348) (8) -(2361) (I) uak+ (2360) -(2362) (I) ^2 (2241) (8) -(2363) (I) uak+ (2362) -(2364) (I) / (2361) (2363) -(2365) (I) * (2364) (2259) -(2366) (I) + (2365) (2348) -(2377) (I) * (2332) (2366) -(2378) (I) uak+ (2377) -(2379) (I) * (32) (2378) -(2380) (I) ^2 (2366) (8) -(2381) (I) uak+ (2380) -(2382) (I) * (32) (2381) -(2390) (I) * (53) (2382) -(2391) (I) + (2379) (2390) -(2375) (L) X·MATRIX·FP64·false -(2376) (I) ba+* (2375) (2366) -(2392) (I) * (53) (2376) -(2393) (I) + (2334) (2392) -(2394) (I) 1-* (42) (2393) -(2395) (I) max (2394) (53) -(2396) (I) * (2395) (42) -(2397) (I) * (2396) (2376) -(2398) (I) uak+ (2397) -(2399) (I) - (2391) (2398) -(2400) (I) > (2394) (53) -(2401) (I) * (2376) (2400) -(2402) (I) * (2401) (2376) -(2403) (I) uak+ (2402) -(2404) (I) + (2382) (2403) -(2405) (I) / (2399) (2404) -(2406) (I) - (53) (2405) -(2414) (I) * (2406) (2382) -(2415) (I) + (2379) (2414) -(2416) (I) * (2406) (2376) -(2417) (I) + (2334) (2416) -(2418) (I) 1-* (42) (2417) -(2419) (I) max (2418) (53) -(2420) (I) * (2419) (42) -(2421) (I) * (2420) (2376) -(2422) (I) uak+ (2421) -(2423) (I) - (2415) (2422) -(2424) (I) > (2418) (53) -(2425) (I) * (2376) (2424) -(2426) (I) * (2425) (2376) -(2427) (I) uak+ (2426) -(2428) (I) + (2382) (2427) -(2429) (I) / (2423) (2428) -(2430) (I) - (2406) (2429) -(2438) (I) * (2430) (2366) -(2439) (I) + (2332) (2438) -(2451) (L) X·MATRIX·FP64·false -(2452) (I) r' (2451) -(2440) (I) * (2430) (2376) -(2441) (I) + (2334) (2440) -(2442) (I) 1-* (42) (2441) -(2443) (I) max (2442) (53) -(2453) (I) * (2443) (42) -(2454) (I) ba+* (2452) (2453) -(2455) (I) - (2454) (2439) -(2467) (I) ^2 (2455) (8) -(2468) (I) uak+ (2467) -(2469) (I) ^2 (2348) (8) -(2470) (I) uak+ (2469) -(2471) (I) / (2468) (2470) -(2472) (I) * (2471) (2366) -(2473) (I) + (2472) (2455) -(2484) (I) * (2439) (2473) -(2485) (I) uak+ (2484) -(2486) (I) * (32) (2485) -(2487) (I) ^2 (2473) (8) -(2488) (I) uak+ (2487) -(2489) (I) * (32) (2488) -(2497) (I) * (53) (2489) -(2498) (I) + (2486) (2497) -(2482) (L) X·MATRIX·FP64·false -(2483) (I) ba+* (2482) (2473) -(2499) (I) * (53) (2483) -(2500) (I) + (2441) (2499) -(2501) (I) 1-* (42) (2500) -(2502) (I) max (2501) (53) -(2503) (I) * (2502) (42) -(2504) (I) * (2503) (2483) -(2505) (I) uak+ (2504) -(2506) (I) - (2498) (2505) -(2507) (I) > (2501) (53) -(2508) (I) * (2483) (2507) -(2509) (I) * (2508) (2483) -(2510) (I) uak+ (2509) -(2511) (I) + (2489) (2510) -(2512) (I) / (2506) (2511) -(2513) (I) - (53) (2512) -(2521) (I) * (2513) (2489) -(2522) (I) + (2486) (2521) -(2523) (I) * (2513) (2483) -(2524) (I) + (2441) (2523) -(2525) (I) 1-* (42) (2524) -(2526) (I) max (2525) (53) -(2527) (I) * (2526) (42) -(2528) (I) * (2527) (2483) -(2529) (I) uak+ (2528) -(2530) (I) - (2522) (2529) -(2531) (I) > (2525) (53) -(2532) (I) * (2483) (2531) -(2533) (I) * (2532) (2483) -(2534) (I) uak+ (2533) -(2535) (I) + (2489) (2534) -(2536) (I) / (2530) (2535) -(2537) (I) - (2513) (2536) -(2545) (I) * (2537) (2473) -(2546) (I) + (2439) (2545) -(2558) (L) X·MATRIX·FP64·false -(2559) (I) r' (2558) -(2547) (I) * (2537) (2483) -(2548) (I) + (2441) (2547) -(2549) (I) 1-* (42) (2548) -(2550) (I) max (2549) (53) -(2560) (I) * (2550) (42) -(2561) (I) ba+* (2559) (2560) -(2562) (I) - (2561) (2546) -(2574) (I) ^2 (2562) (8) -(2575) (I) uak+ (2574) -(2576) (I) ^2 (2455) (8) -(2577) (I) uak+ (2576) -(2578) (I) / (2575) (2577) -(2579) (I) * (2578) (2473) -(2580) (I) + (2579) (2562) -(2591) (I) * (2546) (2580) -(2592) (I) uak+ (2591) -(2593) (I) * (32) (2592) -(2594) (I) ^2 (2580) (8) -(2595) (I) uak+ (2594) -(2596) (I) * (32) (2595) -(2604) (I) * (53) (2596) -(2605) (I) + (2593) (2604) -(2589) (L) X·MATRIX·FP64·false -(2590) (I) ba+* (2589) (2580) -(2606) (I) * (53) (2590) -(2607) (I) + (2548) (2606) -(2608) (I) 1-* (42) (2607) -(2609) (I) max (2608) (53) -(2610) (I) * (2609) (42) -(2611) (I) * (2610) (2590) -(2612) (I) uak+ (2611) -(2613) (I) - (2605) (2612) -(2614) (I) > (2608) (53) -(2615) (I) * (2590) (2614) -(2616) (I) * (2615) (2590) -(2617) (I) uak+ (2616) -(2618) (I) + (2596) (2617) -(2619) (I) / (2613) (2618) -(2620) (I) - (53) (2619) -(2628) (I) * (2620) (2596) -(2629) (I) + (2593) (2628) -(2630) (I) * (2620) (2590) -(2631) (I) + (2548) (2630) -(2632) (I) 1-* (42) (2631) -(2633) (I) max (2632) (53) -(2634) (I) * (2633) (42) -(2635) (I) * (2634) (2590) -(2636) (I) uak+ (2635) -(2637) (I) - (2629) (2636) -(2638) (I) > (2632) (53) -(2639) (I) * (2590) (2638) -(2640) (I) * (2639) (2590) -(2641) (I) uak+ (2640) -(2642) (I) + (2596) (2641) -(2643) (I) / (2637) (2642) -(2644) (I) - (2620) (2643) -(2652) (I) * (2644) (2580) -(2653) (I) + (2546) (2652) -(2665) (L) X·MATRIX·FP64·false -(2666) (I) r' (2665) -(2654) (I) * (2644) (2590) -(2655) (I) + (2548) (2654) -(2656) (I) 1-* (42) (2655) -(2657) (I) max (2656) (53) -(2667) (I) * (2657) (42) -(2668) (I) ba+* (2666) (2667) -(2669) (I) - (2668) (2653) -(2681) (I) ^2 (2669) (8) -(2682) (I) uak+ (2681) -(2683) (I) ^2 (2562) (8) -(2684) (I) uak+ (2683) -(2685) (I) / (2682) (2684) -(2686) (I) * (2685) (2580) -(2687) (I) + (2686) (2669) -(2698) (I) * (2653) (2687) -(2699) (I) uak+ (2698) -(2700) (I) * (32) (2699) -(2701) (I) ^2 (2687) (8) -(2702) (I) uak+ (2701) -(2703) (I) * (32) (2702) -(2711) (I) * (53) (2703) -(2712) (I) + (2700) (2711) -(2696) (L) X·MATRIX·FP64·false -(2697) (I) ba+* (2696) (2687) -(2713) (I) * (53) (2697) -(2714) (I) + (2655) (2713) -(2715) (I) 1-* (42) (2714) -(2716) (I) max (2715) (53) -(2717) (I) * (2716) (42) -(2718) (I) * (2717) (2697) -(2719) (I) uak+ (2718) -(2720) (I) - (2712) (2719) -(2721) (I) > (2715) (53) -(2722) (I) * (2697) (2721) -(2723) (I) * (2722) (2697) -(2724) (I) uak+ (2723) -(2725) (I) + (2703) (2724) -(2726) (I) / (2720) (2725) -(2727) (I) - (53) (2726) -(2735) (I) * (2727) (2703) -(2736) (I) + (2700) (2735) -(2737) (I) * (2727) (2697) -(2738) (I) + (2655) (2737) -(2739) (I) 1-* (42) (2738) -(2740) (I) max (2739) (53) -(2741) (I) * (2740) (42) -(2742) (I) * (2741) (2697) -(2743) (I) uak+ (2742) -(2744) (I) - (2736) (2743) -(2745) (I) > (2739) (53) -(2746) (I) * (2697) (2745) -(2747) (I) * (2746) (2697) -(2748) (I) uak+ (2747) -(2749) (I) + (2703) (2748) -(2750) (I) / (2744) (2749) -(2751) (I) - (2727) (2750) -(2759) (I) * (2751) (2687) -(2760) (I) + (2653) (2759) -(2772) (L) X·MATRIX·FP64·false -(2773) (I) r' (2772) -(2761) (I) * (2751) (2697) -(2762) (I) + (2655) (2761) -(2763) (I) 1-* (42) (2762) -(2764) (I) max (2763) (53) -(2774) (I) * (2764) (42) -(2775) (I) ba+* (2773) (2774) -(2776) (I) - (2775) (2760) -(2788) (I) ^2 (2776) (8) -(2789) (I) uak+ (2788) -(2790) (I) ^2 (2669) (8) -(2791) (I) uak+ (2790) -(2792) (I) / (2789) (2791) -(2793) (I) * (2792) (2687) -(2794) (I) + (2793) (2776) -(2805) (I) * (2760) (2794) -(2806) (I) uak+ (2805) -(2807) (I) * (32) (2806) -(2808) (I) ^2 (2794) (8) -(2809) (I) uak+ (2808) -(2810) (I) * (32) (2809) -(2818) (I) * (53) (2810) -(2819) (I) + (2807) (2818) -(2803) (L) X·MATRIX·FP64·false -(2804) (I) ba+* (2803) (2794) -(2820) (I) * (53) (2804) -(2821) (I) + (2762) (2820) -(2822) (I) 1-* (42) (2821) -(2823) (I) max (2822) (53) -(2824) (I) * (2823) (42) -(2825) (I) * (2824) (2804) -(2826) (I) uak+ (2825) -(2827) (I) - (2819) (2826) -(2828) (I) > (2822) (53) -(2829) (I) * (2804) (2828) -(2830) (I) * (2829) (2804) -(2831) (I) uak+ (2830) -(2832) (I) + (2810) (2831) -(2833) (I) / (2827) (2832) -(2834) (I) - (53) (2833) -(2842) (I) * (2834) (2794) -(2843) (I) + (2760) (2842) -(2855) (L) X·MATRIX·FP64·false -(2856) (I) r' (2855) -(2844) (I) * (2834) (2804) -(2845) (I) + (2762) (2844) -(2846) (I) 1-* (42) (2845) -(2847) (I) max (2846) (53) -(2857) (I) * (2847) (42) -(2858) (I) ba+* (2856) (2857) -(2859) (I) - (2858) (2843) -(2871) (I) ^2 (2859) (8) -(2872) (I) uak+ (2871) -(2873) (I) ^2 (2776) (8) -(2874) (I) uak+ (2873) -(2875) (I) / (2872) (2874) -(2876) (I) * (2875) (2794) -(2877) (I) + (2876) (2859) -(2888) (I) * (2843) (2877) -(2889) (I) uak+ (2888) -(2890) (I) * (32) (2889) -(2891) (I) ^2 (2877) (8) -(2892) (I) uak+ (2891) -(2893) (I) * (32) (2892) -(2901) (I) * (53) (2893) -(2902) (I) + (2890) (2901) -(2886) (L) X·MATRIX·FP64·false -(2887) (I) ba+* (2886) (2877) -(2903) (I) * (53) (2887) -(2904) (I) + (2845) (2903) -(2905) (I) 1-* (42) (2904) -(2906) (I) max (2905) (53) -(2907) (I) * (2906) (42) -(2908) (I) * (2907) (2887) -(2909) (I) uak+ (2908) -(2910) (I) - (2902) (2909) -(2911) (I) > (2905) (53) -(2912) (I) * (2887) (2911) -(2913) (I) * (2912) (2887) -(2914) (I) uak+ (2913) -(2915) (I) + (2893) (2914) -(2916) (I) / (2910) (2915) -(2917) (I) - (53) (2916) -(2925) (I) * (2917) (2877) -(2926) (I) + (2843) (2925) -(2938) (L) X·MATRIX·FP64·false -(2939) (I) r' (2938) -(2927) (I) * (2917) (2887) -(2928) (I) + (2845) (2927) -(2929) (I) 1-* (42) (2928) -(2930) (I) max (2929) (53) -(2940) (I) * (2930) (42) -(2941) (I) ba+* (2939) (2940) -(2942) (I) - (2941) (2926) -(2954) (I) ^2 (2942) (8) -(2955) (I) uak+ (2954) -(2956) (I) ^2 (2859) (8) -(2957) (I) uak+ (2956) -(2958) (I) / (2955) (2957) -(2959) (I) * (2958) (2877) -(2960) (I) + (2959) (2942) -(2971) (I) * (2926) (2960) -(2972) (I) uak+ (2971) -(2973) (I) * (32) (2972) -(2974) (I) ^2 (2960) (8) -(2975) (I) uak+ (2974) -(2976) (I) * (32) (2975) -(2984) (I) * (53) (2976) -(2985) (I) + (2973) (2984) -(2969) (L) X·MATRIX·FP64·false -(2970) (I) ba+* (2969) (2960) -(2986) (I) * (53) (2970) -(2987) (I) + (2928) (2986) -(2988) (I) 1-* (42) (2987) -(2989) (I) max (2988) (53) -(2990) (I) * (2989) (42) -(2991) (I) * (2990) (2970) -(2992) (I) uak+ (2991) -(2993) (I) - (2985) (2992) -(2994) (I) > (2988) (53) -(2995) (I) * (2970) (2994) -(2996) (I) * (2995) (2970) -(2997) (I) uak+ (2996) -(2998) (I) + (2976) (2997) -(2999) (I) / (2993) (2998) -(3000) (I) - (53) (2999) -(3008) (I) * (3000) (2960) -(3009) (I) + (2926) (3008) -(3021) (L) X·MATRIX·FP64·false -(3022) (I) r' (3021) -(3010) (I) * (3000) (2970) -(3011) (I) + (2928) (3010) -(3012) (I) 1-* (42) (3011) -(3013) (I) max (3012) (53) -(3023) (I) * (3013) (42) -(3024) (I) ba+* (3022) (3023) -(3025) (I) - (3024) (3009) -(3037) (I) ^2 (3025) (8) -(3038) (I) uak+ (3037) -(3039) (I) ^2 (2942) (8) -(3040) (I) uak+ (3039) -(3041) (I) / (3038) (3040) -(3042) (I) * (3041) (2960) -(3043) (I) + (3042) (3025) -(3054) (I) * (3009) (3043) -(3055) (I) uak+ (3054) -(3056) (I) * (32) (3055) -(3057) (I) ^2 (3043) (8) -(3058) (I) uak+ (3057) -(3059) (I) * (32) (3058) -(3067) (I) * (53) (3059) -(3068) (I) + (3056) (3067) -(3052) (L) X·MATRIX·FP64·false -(3053) (I) ba+* (3052) (3043) -(3069) (I) * (53) (3053) -(3070) (I) + (3011) (3069) -(3071) (I) 1-* (42) (3070) -(3072) (I) max (3071) (53) -(3073) (I) * (3072) (42) -(3074) (I) * (3073) (3053) -(3075) (I) uak+ (3074) -(3076) (I) - (3068) (3075) -(3077) (I) > (3071) (53) -(3078) (I) * (3053) (3077) -(3079) (I) * (3078) (3053) -(3080) (I) uak+ (3079) -(3081) (I) + (3059) (3080) -(3082) (I) / (3076) (3081) -(3083) (I) - (53) (3082) -(3091) (I) * (3083) (3043) -(3092) (I) + (3009) (3091) -(3104) (L) X·MATRIX·FP64·false -(3105) (I) r' (3104) -(3093) (I) * (3083) (3053) -(3094) (I) + (3011) (3093) -(3095) (I) 1-* (42) (3094) -(3096) (I) max (3095) (53) -(3106) (I) * (3096) (42) -(3107) (I) ba+* (3105) (3106) -(3108) (I) - (3107) (3092) -(3120) (I) ^2 (3108) (8) -(3121) (I) uak+ (3120) -(3122) (I) ^2 (3025) (8) -(3123) (I) uak+ (3122) -(3124) (I) / (3121) (3123) -(3125) (I) * (3124) (3043) -(3126) (I) + (3125) (3108) -(3137) (I) * (3092) (3126) -(3138) (I) uak+ (3137) -(3139) (I) * (32) (3138) -(3140) (I) ^2 (3126) (8) -(3141) (I) uak+ (3140) -(3142) (I) * (32) (3141) -(3150) (I) * (53) (3142) -(3151) (I) + (3139) (3150) -(3135) (L) X·MATRIX·FP64·false -(3136) (I) ba+* (3135) (3126) -(3152) (I) * (53) (3136) -(3153) (I) + (3094) (3152) -(3154) (I) 1-* (42) (3153) -(3155) (I) max (3154) (53) -(3156) (I) * (3155) (42) -(3157) (I) * (3156) (3136) -(3158) (I) uak+ (3157) -(3159) (I) - (3151) (3158) -(3160) (I) > (3154) (53) -(3161) (I) * (3136) (3160) -(3162) (I) * (3161) (3136) -(3163) (I) uak+ (3162) -(3164) (I) + (3142) (3163) -(3165) (I) / (3159) (3164) -(3166) (I) - (53) (3165) -(3174) (I) * (3166) (3126) -(3175) (I) + (3092) (3174) -(3187) (L) X·MATRIX·FP64·false -(3188) (I) r' (3187) -(3176) (I) * (3166) (3136) -(3177) (I) + (3094) (3176) -(3178) (I) 1-* (42) (3177) -(3179) (I) max (3178) (53) -(3189) (I) * (3179) (42) -(3190) (I) ba+* (3188) (3189) -(3191) (I) - (3190) (3175) -(3203) (I) ^2 (3191) (8) -(3204) (I) uak+ (3203) -(3205) (I) ^2 (3108) (8) -(3206) (I) uak+ (3205) -(3207) (I) / (3204) (3206) -(3208) (I) * (3207) (3126) -(3209) (I) + (3208) (3191) -(3220) (I) * (3175) (3209) -(3221) (I) uak+ (3220) -(3222) (I) * (32) (3221) -(3223) (I) ^2 (3209) (8) -(3224) (I) uak+ (3223) -(3225) (I) * (32) (3224) -(3233) (I) * (53) (3225) -(3234) (I) + (3222) (3233) -(3218) (L) X·MATRIX·FP64·false -(3219) (I) ba+* (3218) (3209) -(3235) (I) * (53) (3219) -(3236) (I) + (3177) (3235) -(3237) (I) 1-* (42) (3236) -(3238) (I) max (3237) (53) -(3239) (I) * (3238) (42) -(3240) (I) * (3239) (3219) -(3241) (I) uak+ (3240) -(3242) (I) - (3234) (3241) -(3243) (I) > (3237) (53) -(3244) (I) * (3219) (3243) -(3245) (I) * (3244) (3219) -(3246) (I) uak+ (3245) -(3247) (I) + (3225) (3246) -(3248) (I) / (3242) (3247) -(3249) (I) - (53) (3248) -(3257) (I) * (3249) (3209) -(3258) (I) + (3175) (3257) -(3270) (L) X·MATRIX·FP64·false -(3271) (I) r' (3270) -(3259) (I) * (3249) (3219) -(3260) (I) + (3177) (3259) -(3261) (I) 1-* (42) (3260) -(3262) (I) max (3261) (53) -(3272) (I) * (3262) (42) -(3273) (I) ba+* (3271) (3272) -(3274) (I) - (3273) (3258) -(3286) (I) ^2 (3274) (8) -(3287) (I) uak+ (3286) -(3288) (I) ^2 (3191) (8) -(3289) (I) uak+ (3288) -(3290) (I) / (3287) (3289) -(3291) (I) * (3290) (3209) -(3292) (I) + (3291) (3274) -(3303) (I) * (3258) (3292) -(3304) (I) uak+ (3303) -(3305) (I) * (32) (3304) -(3306) (I) ^2 (3292) (8) -(3307) (I) uak+ (3306) -(3308) (I) * (32) (3307) -(3316) (I) * (53) (3308) -(3317) (I) + (3305) (3316) -(3301) (L) X·MATRIX·FP64·false -(3302) (I) ba+* (3301) (3292) -(3318) (I) * (53) (3302) -(3319) (I) + (3260) (3318) -(3320) (I) 1-* (42) (3319) -(3321) (I) max (3320) (53) -(3322) (I) * (3321) (42) -(3323) (I) * (3322) (3302) -(3324) (I) uak+ (3323) -(3325) (I) - (3317) (3324) -(3326) (I) > (3320) (53) -(3327) (I) * (3302) (3326) -(3328) (I) * (3327) (3302) -(3329) (I) uak+ (3328) -(3330) (I) + (3308) (3329) -(3331) (I) / (3325) (3330) -(3332) (I) - (53) (3331) -(3340) (I) * (3332) (3292) -(3341) (I) + (3258) (3340) -(3353) (L) X·MATRIX·FP64·false -(3354) (I) r' (3353) -(3342) (I) * (3332) (3302) -(3343) (I) + (3260) (3342) -(3344) (I) 1-* (42) (3343) -(3345) (I) max (3344) (53) -(3355) (I) * (3345) (42) -(3356) (I) ba+* (3354) (3355) -(3357) (I) - (3356) (3341) -(3369) (I) ^2 (3357) (8) -(3370) (I) uak+ (3369) -(3371) (I) ^2 (3274) (8) -(3372) (I) uak+ (3371) -(3373) (I) / (3370) (3372) -(3374) (I) * (3373) (3292) -(3375) (I) + (3374) (3357) -(3386) (I) * (3341) (3375) -(3387) (I) uak+ (3386) -(3388) (I) * (32) (3387) -(3389) (I) ^2 (3375) (8) -(3390) (I) uak+ (3389) -(3391) (I) * (32) (3390) -(3399) (I) * (53) (3391) -(3400) (I) + (3388) (3399) -(3384) (L) X·MATRIX·FP64·false -(3385) (I) ba+* (3384) (3375) -(3401) (I) * (53) (3385) -(3402) (I) + (3343) (3401) -(3403) (I) 1-* (42) (3402) -(3404) (I) max (3403) (53) -(3405) (I) * (3404) (42) -(3406) (I) * (3405) (3385) -(3407) (I) uak+ (3406) -(3408) (I) - (3400) (3407) -(3409) (I) > (3403) (53) -(3410) (I) * (3385) (3409) -(3411) (I) * (3410) (3385) -(3412) (I) uak+ (3411) -(3413) (I) + (3391) (3412) -(3414) (I) / (3408) (3413) -(3415) (I) - (53) (3414) -(3423) (I) * (3415) (3375) -(3424) (I) + (3341) (3423) -(3436) (L) X·MATRIX·FP64·false -(3437) (I) r' (3436) -(3425) (I) * (3415) (3385) -(3426) (I) + (3343) (3425) -(3427) (I) 1-* (42) (3426) -(3428) (I) max (3427) (53) -(3438) (I) * (3428) (42) -(3439) (I) ba+* (3437) (3438) -(3440) (I) - (3439) (3424) -(3452) (I) ^2 (3440) (8) -(3453) (I) uak+ (3452) -(3454) (I) ^2 (3357) (8) -(3455) (I) uak+ (3454) -(3456) (I) / (3453) (3455) -(3457) (I) * (3456) (3375) -(3458) (I) + (3457) (3440) -(3469) (I) * (3424) (3458) -(3470) (I) uak+ (3469) -(3471) (I) * (32) (3470) -(3472) (I) ^2 (3458) (8) -(3473) (I) uak+ (3472) -(3474) (I) * (32) (3473) -(3482) (I) * (53) (3474) -(3483) (I) + (3471) (3482) -(3467) (L) X·MATRIX·FP64·false -(3468) (I) ba+* (3467) (3458) -(3484) (I) * (53) (3468) -(3485) (I) + (3426) (3484) -(3486) (I) 1-* (42) (3485) -(3487) (I) max (3486) (53) -(3488) (I) * (3487) (42) -(3489) (I) * (3488) (3468) -(3490) (I) uak+ (3489) -(3491) (I) - (3483) (3490) -(3492) (I) > (3486) (53) -(3493) (I) * (3468) (3492) -(3494) (I) * (3493) (3468) -(3495) (I) uak+ (3494) -(3496) (I) + (3474) (3495) -(3497) (I) / (3491) (3496) -(3498) (I) - (53) (3497) -(3506) (I) * (3498) (3458) -(3507) (I) + (3424) (3506) -(3519) (L) X·MATRIX·FP64·false -(3520) (I) r' (3519) -(3508) (I) * (3498) (3468) -(3509) (I) + (3426) (3508) -(3510) (I) 1-* (42) (3509) -(3511) (I) max (3510) (53) -(3521) (I) * (3511) (42) -(3522) (I) ba+* (3520) (3521) -(3523) (I) - (3522) (3507) -(3535) (I) ^2 (3523) (8) -(3536) (I) uak+ (3535) -(3537) (I) ^2 (3440) (8) -(3538) (I) uak+ (3537) -(3539) (I) / (3536) (3538) -(3540) (I) * (3539) (3458) -(3541) (I) + (3540) (3523) -(3552) (I) * (3507) (3541) -(3553) (I) uak+ (3552) -(3554) (I) * (32) (3553) -(3555) (I) ^2 (3541) (8) -(3556) (I) uak+ (3555) -(3557) (I) * (32) (3556) -(3565) (I) * (53) (3557) -(3566) (I) + (3554) (3565) -(3550) (L) X·MATRIX·FP64·false -(3551) (I) ba+* (3550) (3541) -(3567) (I) * (53) (3551) -(3568) (I) + (3509) (3567) -(3569) (I) 1-* (42) (3568) -(3570) (I) max (3569) (53) -(3571) (I) * (3570) (42) -(3572) (I) * (3571) (3551) -(3573) (I) uak+ (3572) -(3574) (I) - (3566) (3573) -(3575) (I) > (3569) (53) -(3576) (I) * (3551) (3575) -(3577) (I) * (3576) (3551) -(3578) (I) uak+ (3577) -(3579) (I) + (3557) (3578) -(3580) (I) / (3574) (3579) -(3581) (I) - (53) (3580) -(3589) (I) * (3581) (3541) -(3590) (I) + (3507) (3589) -(3602) (L) X·MATRIX·FP64·false -(3603) (I) r' (3602) -(3591) (I) * (3581) (3551) -(3592) (I) + (3509) (3591) -(3593) (I) 1-* (42) (3592) -(3594) (I) max (3593) (53) -(3604) (I) * (3594) (42) -(3605) (I) ba+* (3603) (3604) -(3606) (I) - (3605) (3590) -(3618) (I) ^2 (3606) (8) -(3619) (I) uak+ (3618) -(3620) (I) ^2 (3523) (8) -(3621) (I) uak+ (3620) -(3622) (I) / (3619) (3621) -(3623) (I) * (3622) (3541) -(3624) (I) + (3623) (3606) -(3635) (I) * (3590) (3624) -(3636) (I) uak+ (3635) -(3637) (I) * (32) (3636) -(3638) (I) ^2 (3624) (8) -(3639) (I) uak+ (3638) -(3640) (I) * (32) (3639) -(3648) (I) * (53) (3640) -(3649) (I) + (3637) (3648) -(3633) (L) X·MATRIX·FP64·false -(3634) (I) ba+* (3633) (3624) -(3650) (I) * (53) (3634) -(3651) (I) + (3592) (3650) -(3652) (I) 1-* (42) (3651) -(3653) (I) max (3652) (53) -(3654) (I) * (3653) (42) -(3655) (I) * (3654) (3634) -(3656) (I) uak+ (3655) -(3657) (I) - (3649) (3656) -(3658) (I) > (3652) (53) -(3659) (I) * (3634) (3658) -(3660) (I) * (3659) (3634) -(3661) (I) uak+ (3660) -(3662) (I) + (3640) (3661) -(3663) (I) / (3657) (3662) -(3664) (I) - (53) (3663) -(3672) (I) * (3664) (3624) -(3673) (I) + (3590) (3672) diff --git a/src/main/python/tests/test_l2svm_lineage.py b/src/main/python/tests/test_l2svm_lineage.py deleted file mode 100644 index 9bd535e..0000000 --- a/src/main/python/tests/test_l2svm_lineage.py +++ /dev/null @@ -1,88 +0,0 @@ -#------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -#------------------------------------------------------------- - -import warnings -import unittest -import re -import os -import sys -from typing import Tuple -import numpy as np - -path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../") -sys.path.insert(0, path) -from systemds.matrix import Matrix -from systemds.context import SystemDSContext - -sds = SystemDSContext() - - -class TestAPI(unittest.TestCase): - - def setUp(self): - warnings.filterwarnings(action="ignore", - message="unclosed", - category=ResourceWarning) - - def tearDown(self): - warnings.filterwarnings(action="ignore", - message="unclosed", - category=ResourceWarning) - - def test_getl2svm_lineage(self): - features, labels = generate_matrices_for_l2svm(10, seed=1304) - # get the lineage trace - lt = features.l2svm(labels).get_lineage_trace() - with open(os.path.join("tests", "lt_l2svm.txt"), "r") as file: - data = file.read() - file.close() - self.assertEqual(reVars(lt), reVars(data)) - - def test_getl2svm_lineage2(self): - features, labels = generate_matrices_for_l2svm(10, seed=1304) - # get the lineage trace - model, lt = features.l2svm(labels).compute(lineage=True) - with open(os.path.join("tests", "lt_l2svm.txt"), "r") as file: - data = file.read() - file.close() - self.assertEqual(reVars(lt), reVars(data)) - - -def generate_matrices_for_l2svm(dims: int, seed: int = 1234) -> Tuple[Matrix, Matrix]: - np.random.seed(seed) - m1 = np.array(np.random.randint(100, size=dims * dims) + 1.01, dtype=np.double) - m1.shape = (dims, dims) - m2 = np.zeros((dims, 1)) - for i in range(dims): - if np.random.random() > 0.5: - m2[i][0] = 1 - return sds.matrix(m1), sds.matrix(m2) - - -def reVars(s: str) -> str: - s = re.sub(r'\b_mVar\d*\b', '', s) - s = re.sub(r'\b_Var\d*\b', '', s) - return s - - -if __name__ == "__main__": - unittest.main(exit=False) - sds.close() diff --git a/src/main/python/tests/test_lineagetrace.py b/src/main/python/tests/test_lineagetrace.py deleted file mode 100644 index d2064bd..0000000 --- a/src/main/python/tests/test_lineagetrace.py +++ /dev/null @@ -1,75 +0,0 @@ -#------------------------------------------------------------- -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -#------------------------------------------------------------- - -import warnings -import unittest -import os -import sys -import re - -path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "../") -sys.path.insert(0, path) -from systemds.context import SystemDSContext - -sds = SystemDSContext() - - -class TestLineageTrace(unittest.TestCase): - - def setUp(self): - warnings.filterwarnings(action="ignore", - message="unclosed", - category=ResourceWarning) - - def tearDown(self): - warnings.filterwarnings(action="ignore", - message="unclosed", - category=ResourceWarning) - - def test_compare_trace1(self): # test getLineageTrace() on an intermediate - m = sds.full((5, 10), 4.20) - m_res = m * 3.1 - m_sum = m_res.sum() - with open(os.path.join("tests", "lt.txt"), "r") as file: - data = file.read() - file.close() - self.assertEqual(reVars(m_res.get_lineage_trace()), reVars(data)) - - def test_compare_trace2(self): # test (lineage=True) as an argument to compute - m = sds.full((5, 10), 4.20) - m_res = m * 3.1 - sum, lt = m_res.sum().compute(lineage=True) - lt = re.sub(r'\b_mVar\d*\b', '', lt) - with open(os.path.join("tests", "lt2.txt"), "r") as file: - data = file.read() - file.close() - self.assertEqual(reVars(lt), reVars(data)) - - -def reVars(s: str) -> str: - s = re.sub(r'\b_mVar\d*\b', '', s) - s = re.sub(r'\b_Var\d*\b', '', s) - return s - - -if __name__ == "__main__": - unittest.main(exit=False) - sds.close()