|
@@ -202,7 +202,7 @@ To be able to apply an expansion, you need to determine eligibility. To do this
|
|
<<constants-and-greeks>>
|
|
<<constants-and-greeks>>
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-* DONE Expression Typing [7/7]
|
|
|
|
|
|
+* WORKING Expression Typing [0/8]
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-04-30 Sat 23:15>
|
|
:CREATED: <2016-04-30 Sat 23:15>
|
|
:ID: c6921b1e-d269-4243-acff-5a77685c331e
|
|
:ID: c6921b1e-d269-4243-acff-5a77685c331e
|
|
@@ -212,21 +212,7 @@ To accomplish the goal of providing a complete system to manipulate algebraic ex
|
|
|
|
|
|
This includes a form of storage, the classification definition macro, a way to check a classification, an expression classifier, and all possible classifications.
|
|
This includes a form of storage, the classification definition macro, a way to check a classification, an expression classifier, and all possible classifications.
|
|
|
|
|
|
-#+Caption: Determine Expression Type
|
|
|
|
-#+Name: et-determine-expression-type
|
|
|
|
-#+BEGIN_SRC lisp :tangle "larcs-classify.lisp"
|
|
|
|
- (in-package #:larcs.classify)
|
|
|
|
- <<et-classification-storage>>
|
|
|
|
- <<et-define-classification>>
|
|
|
|
- <<et-check-classification>>
|
|
|
|
- <<et-classify-expression>>
|
|
|
|
- <<et-classification-case>>
|
|
|
|
- <<et-when-classified>>
|
|
|
|
- <<et-possible-classifications>>
|
|
|
|
-#+END_SRC
|
|
|
|
-
|
|
|
|
-** DONE Define Classification
|
|
|
|
-CLOSED: [2016-05-04 Wed 19:30]
|
|
|
|
|
|
+** TODO Define Classification
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 13:56>
|
|
:CREATED: <2016-05-02 Mon 13:56>
|
|
:ID: d8826a51-50b8-467a-9e52-158502bd4138
|
|
:ID: d8826a51-50b8-467a-9e52-158502bd4138
|
|
@@ -254,8 +240,7 @@ Aside from defining the classification, it also pushes the classification name a
|
|
',name)))
|
|
',name)))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-** DONE Check Classification
|
|
|
|
-CLOSED: [2016-05-04 Wed 19:37]
|
|
|
|
|
|
+** TODO Check Classification
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 13:56>
|
|
:CREATED: <2016-05-02 Mon 13:56>
|
|
:ID: 6505b0b1-ffd8-4dd6-b81a-3e49483d8437
|
|
:ID: 6505b0b1-ffd8-4dd6-b81a-3e49483d8437
|
|
@@ -273,8 +258,7 @@ To check a classification, the classifier is obtained, unless the specified clas
|
|
expression)))
|
|
expression)))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-** DONE Classify Expression
|
|
|
|
-CLOSED: [2016-05-04 Wed 19:44]
|
|
|
|
|
|
+** TODO Classify Expression
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:09>
|
|
:CREATED: <2016-05-02 Mon 14:09>
|
|
:ID: 82d75d54-1d33-400b-86a3-7d16af938ac8
|
|
:ID: 82d75d54-1d33-400b-86a3-7d16af938ac8
|
|
@@ -296,8 +280,7 @@ To completely classify an expression, the ~*classifications*~ alist is mapped ov
|
|
(push name classifications))))))
|
|
(push name classifications))))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-** DONE Classification Case
|
|
|
|
-CLOSED: [2016-05-30 Mon 18:17]
|
|
|
|
|
|
+** TODO Classification Case
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-20 Fri 14:15>
|
|
:CREATED: <2016-05-20 Fri 14:15>
|
|
:ID: 19a4e467-baa0-47eb-9267-93ff3801b1fd
|
|
:ID: 19a4e467-baa0-47eb-9267-93ff3801b1fd
|
|
@@ -321,8 +304,7 @@ Following the case pattern, and to allow for cleaner code, I've defined the clas
|
|
,@conditions))))
|
|
,@conditions))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-** DONE When Classified
|
|
|
|
-CLOSED: [2016-05-30 Mon 19:18]
|
|
|
|
|
|
+** TODO When Classified
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-30 Mon 18:31>
|
|
:CREATED: <2016-05-30 Mon 18:31>
|
|
:ID: 5c7c3e0b-9170-48e9-a414-6ac4528f9ac3
|
|
:ID: 5c7c3e0b-9170-48e9-a414-6ac4528f9ac3
|
|
@@ -338,7 +320,7 @@ The ~when-classified-as~ macro takes a classification, variable and a body. It
|
|
,@body))
|
|
,@body))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-** DONE Classifications [13/13]
|
|
|
|
|
|
+** WORKING Classifications [0/13]
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 13:56>
|
|
:CREATED: <2016-05-02 Mon 13:56>
|
|
:ID: dcce4a6b-1b2d-4638-a82b-0c4917b0698a
|
|
:ID: dcce4a6b-1b2d-4638-a82b-0c4917b0698a
|
|
@@ -378,8 +360,7 @@ I must define several different classifications, ranging from simple numeric exp
|
|
<<et-classify-trigonometrics>>
|
|
<<et-classify-trigonometrics>>
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Numbers
|
|
|
|
-CLOSED: [2016-05-04 Wed 19:56]
|
|
|
|
|
|
+*** TODO Numbers
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:ID: 42081153-7cc5-42ff-a17f-53e171c6d1a7
|
|
:ID: 42081153-7cc5-42ff-a17f-53e171c6d1a7
|
|
@@ -394,8 +375,7 @@ Check to see if a given expression is a number using ~numberp~.
|
|
(numberp expression))
|
|
(numberp expression))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Variables
|
|
|
|
-CLOSED: [2016-05-04 Wed 19:57]
|
|
|
|
|
|
+*** TODO Variables
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:ID: 4c676754-ef9a-485f-91a2-8f1bd83c7659
|
|
:ID: 4c676754-ef9a-485f-91a2-8f1bd83c7659
|
|
@@ -410,8 +390,7 @@ Check to see if a given expression is a variable, that is to say a symbol, using
|
|
(symbolp expression))
|
|
(symbolp expression))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Non Atomics
|
|
|
|
-CLOSED: [2016-05-04 Wed 19:59]
|
|
|
|
|
|
+*** TODO Non Atomics
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-04 Wed 19:52>
|
|
:CREATED: <2016-05-04 Wed 19:52>
|
|
:ID: 414df063-0be1-4849-8b9f-d71aa828be2a
|
|
:ID: 414df063-0be1-4849-8b9f-d71aa828be2a
|
|
@@ -426,8 +405,7 @@ Check to see if a given expression is a non-atomic (any expression other than a
|
|
(listp expression))
|
|
(listp expression))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Additives
|
|
|
|
-CLOSED: [2016-05-04 Wed 20:01]
|
|
|
|
|
|
+*** TODO Additives
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:ID: 736d79dc-f34c-4247-b592-690d7f2fddd9
|
|
:ID: 736d79dc-f34c-4247-b592-690d7f2fddd9
|
|
@@ -443,8 +421,7 @@ Check to see whether or not an expression is an additive by ensuring that it is
|
|
(eq '+ (first expression))))
|
|
(eq '+ (first expression))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Subtractive
|
|
|
|
-CLOSED: [2016-05-04 Wed 20:02]
|
|
|
|
|
|
+*** TODO Subtractive
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:CREATED: <2016-05-02 Mon 14:26>
|
|
:ID: c59d086f-2f49-485a-8f96-57d85e774f60
|
|
:ID: c59d086f-2f49-485a-8f96-57d85e774f60
|
|
@@ -460,8 +437,7 @@ Check to see whether a given expression is a subtractive by ensuring it is non-a
|
|
(eq '- (first expression))))
|
|
(eq '- (first expression))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Powers
|
|
|
|
-CLOSED: [2016-05-04 Wed 20:07]
|
|
|
|
|
|
+*** TODO Powers
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:27>
|
|
:CREATED: <2016-05-02 Mon 14:27>
|
|
:ID: cc15dd10-7cc0-4370-9e69-daf903b30ad5
|
|
:ID: cc15dd10-7cc0-4370-9e69-daf903b30ad5
|
|
@@ -479,8 +455,7 @@ This is used to classify "powers", that is to say, equations of the form $x^n$,
|
|
(classified-as-p (third expression) 'numeric))))
|
|
(classified-as-p (third expression) 'numeric))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Exponentials
|
|
|
|
-CLOSED: [2016-05-30 Mon 18:24]
|
|
|
|
|
|
+*** TODO Exponentials
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 15:04>
|
|
:CREATED: <2016-05-02 Mon 15:04>
|
|
:ID: a11fdd94-d56c-4749-bb22-dca75159dbcb
|
|
:ID: a11fdd94-d56c-4749-bb22-dca75159dbcb
|
|
@@ -502,8 +477,7 @@ This classifies both natural and non-natural exponentials. It does so by ensuri
|
|
(eq 'expt (first expression)))))
|
|
(eq 'expt (first expression)))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Multiplicatives
|
|
|
|
-CLOSED: [2016-05-30 Mon 18:55]
|
|
|
|
|
|
+*** TODO Multiplicatives
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:27>
|
|
:CREATED: <2016-05-02 Mon 14:27>
|
|
:ID: feb85a20-93e3-45a1-be01-9893ecc07c53
|
|
:ID: feb85a20-93e3-45a1-be01-9893ecc07c53
|
|
@@ -519,8 +493,7 @@ To classify multiplicative expressions, it is first ensured that they are non-at
|
|
(eq '* (first expression))))
|
|
(eq '* (first expression))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Logarithmics
|
|
|
|
-CLOSED: [2016-05-30 Mon 18:30]
|
|
|
|
|
|
+*** TODO Logarithmics
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:27>
|
|
:CREATED: <2016-05-02 Mon 14:27>
|
|
:ID: 0b733d75-e1ab-413f-8f8a-6a8a47db409c
|
|
:ID: 0b733d75-e1ab-413f-8f8a-6a8a47db409c
|
|
@@ -542,8 +515,7 @@ This defines the classifications for logarithmic expressions, for both natural a
|
|
(eq 'log (first expression)))))
|
|
(eq 'log (first expression)))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Rationals
|
|
|
|
-CLOSED: [2016-05-30 Mon 18:58]
|
|
|
|
|
|
+*** TODO Rationals
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:28>
|
|
:CREATED: <2016-05-02 Mon 14:28>
|
|
:ID: a4505a66-c249-4438-a6df-81e21718e23e
|
|
:ID: a4505a66-c249-4438-a6df-81e21718e23e
|
|
@@ -560,8 +532,7 @@ Rationals are classified similarly to multiplicatives, checking to see whether o
|
|
(eq '/ (first expression)))))
|
|
(eq '/ (first expression)))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Polynomial Terms
|
|
|
|
-CLOSED: [2016-05-30 Mon 19:13]
|
|
|
|
|
|
+*** TODO Polynomial Terms
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:28>
|
|
:CREATED: <2016-05-02 Mon 14:28>
|
|
:ID: 37da52b7-98a0-4a16-8a17-a62fcff2ba59
|
|
:ID: 37da52b7-98a0-4a16-8a17-a62fcff2ba59
|
|
@@ -590,8 +561,7 @@ To classify a polynomial term, The expression is checked to see if it satisfies
|
|
(classified-as-p (second expression) 'variable)))))))
|
|
(classified-as-p (second expression) 'variable)))))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Polynomials
|
|
|
|
-CLOSED: [2016-05-08 Sun 16:46]
|
|
|
|
|
|
+*** TODO Polynomials
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 14:28>
|
|
:CREATED: <2016-05-02 Mon 14:28>
|
|
:ID: 8cd9045b-81dd-4571-930a-a852f81969c9
|
|
:ID: 8cd9045b-81dd-4571-930a-a852f81969c9
|
|
@@ -614,8 +584,7 @@ This determines whether or not a given expression is a polynomial, that is to sa
|
|
(rest expression))))))
|
|
(rest expression))))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-*** DONE Trigonometrics
|
|
|
|
-CLOSED: [2016-05-30 Mon 19:15]
|
|
|
|
|
|
+*** TODO Trigonometrics
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-04 Wed 13:38>
|
|
:CREATED: <2016-05-04 Wed 13:38>
|
|
:ID: 6f433cad-4b81-4a6f-ab65-981f4a924812
|
|
:ID: 6f433cad-4b81-4a6f-ab65-981f4a924812
|
|
@@ -661,8 +630,7 @@ Trigonometrics are classified as many others are, they are first checked to see
|
|
(eq 'cot (first expression))))
|
|
(eq 'cot (first expression))))
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
-** DONE Classification Storage
|
|
|
|
-CLOSED: [2016-05-04 Wed 19:49]
|
|
|
|
|
|
+** TODO Classification Storage
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-05-02 Mon 13:55>
|
|
:CREATED: <2016-05-02 Mon 13:55>
|
|
:ID: ff35cd33-3c10-4a45-a2c5-32bc3fdc1acc
|
|
:ID: ff35cd33-3c10-4a45-a2c5-32bc3fdc1acc
|
|
@@ -676,6 +644,25 @@ The storage of classifications is simple, they are stored as an alist in the for
|
|
(defvar *classifications* '())
|
|
(defvar *classifications* '())
|
|
#+END_SRC
|
|
#+END_SRC
|
|
|
|
|
|
|
|
+** TODO Assembly
|
|
|
|
+:PROPERTIES:
|
|
|
|
+:CREATED: <2016-06-14 Tue 16:59>
|
|
|
|
+:ID: bb1d3eb5-b9bf-4378-9716-87ab57dcc8a3
|
|
|
|
+:END:
|
|
|
|
+
|
|
|
|
+#+Caption: Expression Typing Assembly
|
|
|
|
+#+Name: et-assembly
|
|
|
|
+#+BEGIN_SRC lisp :tangle "larcs-classify.lisp"
|
|
|
|
+ (in-package #:larcs.classify)
|
|
|
|
+ <<et-classification-storage>>
|
|
|
|
+ <<et-define-classification>>
|
|
|
|
+ <<et-check-classification>>
|
|
|
|
+ <<et-classify-expression>>
|
|
|
|
+ <<et-classification-case>>
|
|
|
|
+ <<et-when-classified>>
|
|
|
|
+ <<et-possible-classifications>>
|
|
|
|
+#+END_SRC
|
|
|
|
+
|
|
* WORKING Algebraic Manipulation [2/6]
|
|
* WORKING Algebraic Manipulation [2/6]
|
|
:PROPERTIES:
|
|
:PROPERTIES:
|
|
:CREATED: <2016-06-09 Thu 09:20>
|
|
:CREATED: <2016-06-09 Thu 09:20>
|