ADVANCED ALGEBRAIC EXPRESSION DATA INPUT 1) ALGEBRAIC EXPRESSION INPUT DATA ITEM 1-1) AN INPUT DATA ITEM An item of input data can be: 1-1-1) A simple numerical constant, which is conventionally accepted, 1-1-2) An ALGebraic expression that can contain variables, numerical constants and algebraic operators. 1-1-2-1) Algebraic Variables: X Y Z A B C .... A single-letter from 26 alphabets, such as A B C .. X Y Z. (Lower case is the same as upper case) As many as needed that are defined currently or previously. 1-1-2-2) Algebraic Numerical Operators: = ** * / + - 6 operators: = ** * / + - As many as needed with only ONE "=" as FIRST operator with top priority if any. Others, namely ** * / + -, are according conventional algebraic convention. Each item and every item of numeric data may be input as a form of ALGebraic expression in one contiguous item. For example, the numeric number 8. can be any one of them as shown below: (with (Y=2.)) 8. Y=2.**2+2.**3_2.*2. Y*4.**3/4./Y**2 2.**4/2. The operation priority for the expression Y=2.**2+2.**3_2.*2. is (Y=2.)**2+2.**3_2.*2.. However, in input the open parenthesis "(" and the close parenthesis ")" must be omitted. Each item and every item must be contiguous including "+" and/or "-", which is used as sign of positive and/or negative numbers respectively. Blanks are used as item separator along with commas "," as separator. It is highly advisable not to use commas "," due to third party compiler problem. This situation may be corrected in the future. Use the under line "_" as subtraction operator, not minus "-", due to conflict in some input notations. The "-" is used for the sign of a negative number only. In time this situation will be corrected. 1 1-1-3) INPUT DATA SPACE LIMITATION In an original input line, there are allocated 110 (or 80) total column spaces for input. Each and every input data item, if needed, is converted to form a simple nominal data item. This way, a new input line is obtained. The TABLE below shows their maximum allowable column spaces currently. +---------------------------------------+ | Input line that has converted data | +---------------------------------------+ | 256 | +---------------------------------------+ | Algebraic expression | +---------------------------------------+ | 32 | +--------------+------------------------+ | Variable | Numerical constant | +--------------+------------------------+ | 1 | 16 | +---------------------------------------+ There are 6 ALGebraic operators in all to use and 26 single-letter variables that you can assign a numerical constant. The 6 operators : = ** * / + - The 26 variable : A B C D E ... X Y Z (lower case same as upper case) 1 1-2) PRIORITY OF OPERATION The priority of algebraic operation is the same as that in conventional mathematics for ** * / + -. The Program adds the sign "=" as additional operator with top priority. 1-2-1) = An item can only have ONE equal sign in the form Y=xxx.xx Y, any one of 26 single-letter variables. The "=" must be, if any, the FIRST algebraic operator. xxx.xx, which is assigned as value for Y, must be a numerical constant. A variable is considered defined with this numerical constant and it continues to have the same value until it is redefined by another Y=yyy.yy in any OPERATION in the Articles 1-2), 2) and 3). Y=xxx.xx** means (Y=xxx.xx)** in priority. However, (Y=xxx.xx)** is INCORRECT input syntactically. 1-2-2) ** To raise to a power 1-2-3) * / The priority between * and / is according to input order. 1-2-4) + - The priority between + and - is according to input order. Each numerical number associated with an algebraic operator must be in floating point except a number which is raised to the power of whole digit. (some computers may take fixed point for floating point.) For example, all below are good. X=2.54**2 better (means (X=2.54)**2) X=2.54**2.0 good X=3600.**0.5 good and must be. 1-3) INVOCATION SYNTAX 1-3-1) ALGebraic 6 ... ALG 6 : The Program scans all 6 operators, namely = ** * / + _. ALG 4 : The Program scans only 4 operators, namely = ** * /. If there is + and/or - in expression, Program will treat it as an input error and stops. ALG 0 : Defaults to ALG 4 (Otherwise it is meaningless.) ALG ON: The Program is to default currently to ALG 4. ALG OFF: Program is disabled from such capability. 1 2) DATA CONVERT/MODIFY COMMAND: MUL, DIV, ADD & SUB -------------------------------------------- O P E R A T I O N P R I O R I T Y -------------------------------------------- 1 2 3 4 ---------- ---------- -------- ---------- MULtiplier DIVisor ADDer SUBtracter -------------------------------------------- There are times when various data are mixed in use, when several sets of data with different reference points of datum are merged and/or when it is desired to output in different unit systems, then it can be highly advantageous to invoke the data converting/modifying commands, namely, MULtiplier, DIVisor, ADDer and SUBtracter. For example, raw data base of different unit systems for section properties, material properties and so on are mixed in use. This is a powerful capability to handle various data from verious sources and also to convert competitors' data for checking by CAESETS. 2-1) MULtiplier MULtiplier 6 xxxx xxxx xxxx xxxx xxxx xxxxx MUL 6 xxxx xxxx xxxx xxxx xxxx xxxxx MUL 4 xxxx xxxx xxxx xxxx xxxx xxxxx MULtiplier 0 xxxx xxxx xxxx xxxx xxxx xxxxx MULtiplier ON xxxx xxxx xxxx xxxx xxxx xxxxx MULtiplier OFF : The capability is disabled. MUL N xxxx xxxx xxxx xxxx xxxx xxxxx, Where N is 6, 4, 0 or ON for enabling and OFF for disabling. When N is 6, it is to scan 6 operators, = ** * / + _. When N is 4, it is to scan 4 operators, = ** * /. When N is 0, it is to scan 0 operator; namely all xxxx .... must be simple numerical constants if any. When N is ON, it is to default value for ON, currently 0. Where xxxx xxxx .... .... are input data items as multipliers. Number of multiplier items between 0 to 40. If a multiplier item is NOT input, it will be filled with 0. This will be the case for trailing input items. A non-zero input is retained as a simple numerical constant after ALGebraic operations and will NOT be wiped out after MUL OFF. They will be retained for future use under Article 3). However, a subsequent MULtiplier Command that is ENABLING (not MUL OFF Command) will clear all existing numerical constants with 0. and start a new set of its own data items if any. Each NONE ZERO (0.) multiplier as an item is to modify the corresponding item of the raw data of input file respectively. Note: The above four commands are independent from one among another. Each can only be applied to all original raw data in input file but not to data of these four input lines themselves. 1 2-1-1) Taking from the SECT.DAT file for illustration, For example: ITEM ITEM ITEM ITEM ---- ------------------ ------------ ---- 1 2 3 4 ---- ------------------ ------------ ---- MUL 6 0. Y=2.**2+2.**3_2.*2. Y*4.**2/Y**2 1. The line above shows 4 multiplier items. 2-1-1-1) The 1ST item is a 0., which indicates NOT to modify EACH and EVERY 1ST corresponding ITEM of the raw data of the SECT.DAT File as shown below. In this case, the data item is NOT an input data of numerical number but of characters, namely, STELW36X230. 2-1-1-2) The 2ND item is Y=2.**2+2.**3_2.*2., which is an ALGebraic expression data item evaluated as (Y=2.)**2+2.**3_2.*2. to be 8.. As a multiplier to its corresponding 2ND item 67.6 is to give: 67.6 times 8 equaling 540.8. 2-1-1-3) The 3RD item is Y*4.**2/Y**2, which is an ALGebraic expression data item evaluated with Y predefined as 2. to be 8. too. As a multiplier to its corresponding 2ND item 9.4*10. is to give: firstly, "ALG 6" operating on 9.4*10. to yield 940., secondly, 8. as multiplier to 940. resulting in 7520. 2-1-1-4) The 4TH item is 1. as a multiplier. 2-1-1-5) Remaining unmodified: Items 5 through 7 unmodified since MUL 6 Command has only 4 items. $ SECT.DAT FILE $ SECTION PROPERTIES OF MEMBERS $ ITEM ITEM ITEM ITEM ITEM ITEM ITEM $ --------- ----- ------- ------- ----- ----- ---- $ 1 2 3 4 5 6 7 $ --------- ----- ------- ------- ----- ----- ---- $ $ ID NAME AREA IY IZ J DY DZ $ --------- ----- ------- ------- ----- ----- ---- MUL 6 0. Y=2.**2+2.**3_2.*2. Y*4.**2/Y**2 1. ALG 6 STELW36X230 67.6 9.4*10. 15.*10.**3 28.6 35.9 16.47 ... ... ALG OFF MUL OFF END DATA The file above after the operation is equivalent to the one below. $ SECT.DAT FILE $ SECTION PROPERTIES OF MEMBERS $ ITEM ITEM ITEM ITEM ITEM ITEM ITEM $ --------- ----- ------- ------- ----- ----- ---- $ 1 2 3 4 5 6 7 $ --------- ----- ------- ------- ----- ----- ---- $ $ ID NAME AREA IY IZ J DY DZ $ --------- ----- ------- ------- ----- ----- ---- STELW36X230 540.8 7520. 15000. 28.6 35.9 16.47 ... ... END DATA 2-2) DIVisor The same logic as that of multiplier is applied. 2-3) ADDer The same logic as that of multiplier is applied. 2-4) SUBtracter The same logic as that of multiplier is applied. 1 3) COMBINED MATHEMATICAL OPERATION for 1-3) and 2) 3-1) ALL MATh ON: 3-1-1) To enable all mathematical operations of Articles 1-3) and 2). In Article 1-3), the LATEST ALGebraic Command that is enabling is to be invoked, namely ALG 6, or ALG 4 whichever is the case. If none of ALG Command was enabled previously, default ALG Command is assumed, currently ALG 4. Also all FOUR Commands in Article 2) are invoked with all NONE ZERO values that have been retained reactivated. ALL MAT ON MATh ALL ON: Another equivalent command syntax. MAT ALL ON 3-1-2) To save time not to reinput the data that have been retained in Article 2). 3-2) ALL MATh OFF: To disable all the capabilities. ALL MAT OFF is equivalent to : MUL OFF, DIV OFF, ADD OFF and SUB OFF combined. MATh ALL OFF