├── .gitignore ├── 1_intro_Unix ├── gutenberg ├── matrices └── testfile ├── 2_intro_bash ├── directories ├── gutenberg └── stdout_stderr.sh ├── 3_simple_scripts ├── cat.sh ├── ex_quoting.sh ├── first_script.sh ├── gutenberg ├── hello.sh ├── matrices ├── quoting_example.sh ├── special_parameters.sh └── stdout_stderr.sh ├── 4_control_io ├── IFS_for.sh ├── IFSread.sh ├── addlinenumbers.sh ├── argparsing.sh ├── caseexample.sh ├── cat_script.sh ├── forbasic.sh ├── forbreakcontinue.sh ├── forcommandsubst.sh ├── forlscommandsubst.sh ├── forparameter.sh ├── forwildcard.sh ├── gutenberg ├── ifexamples.sh ├── matrices ├── more_ifexamples.sh ├── readerror.sh ├── readexample.sh ├── sort_and_indent.sh ├── swaplines.sh ├── whilebreak.sh ├── whilecontinue.sh ├── whileloop.sh └── whilereadline.sh ├── 5_variables ├── arith_expansion.sh ├── arith_for_cloop.sh ├── arith_intermediate_floats.sh ├── arith_logic_ex.sh ├── arith_operator_ex.sh ├── arith_replacement.sh ├── gutenberg ├── pexp_assign_default.sh ├── pexp_length.sh ├── pexp_subst.sh ├── pexp_substr.sh ├── pexp_use_alternate.sh └── pexp_use_default.sh ├── 6_functions_subshells ├── cleanup_notrap.sh ├── cleanup_trap.sh ├── fun_arguments.sh ├── fun_bad.sh ├── fun_good.sh ├── fun_pipe.sh ├── fun_return.sh ├── fun_vars.sh ├── group_unpack.sh ├── group_write_file.sh ├── map.lib.sh ├── matrices ├── overwrite_fail.sh ├── overwrite_loop.sh ├── overwrite_mostrecent.sh ├── source_exercise.sh ├── source_sourcability.sh ├── sourcing.lib.sh ├── sourcing.script.sh ├── subshell_cdifs.sh ├── subshell_commandsubst.sh ├── subshell_example.sh ├── subshell_exercise.sh ├── subshell_pack.sh ├── subshell_pipes.sh ├── subshell_pipes_correct.sh └── subshell_pipes_correct2.sh ├── 7_regular_expressions ├── chem_output ├── grep_only_matching.sh ├── grep_vs_egrep.sh ├── matrices ├── regex_alternation.sh ├── regex_anchor.sh ├── regex_anchorend.sh ├── regex_bracket.sh ├── regex_compbracket.sh ├── regex_grouping.sh ├── regex_plus.sh ├── regex_posixclass.sh ├── regex_star.sh ├── sed_altmatch.sh ├── sed_delete.sh ├── sed_double_quotes.sh ├── sed_insertion.sh └── sed_substitute.sh ├── 8_awk ├── action_exit.sh ├── action_next.sh ├── action_printf.sh ├── awk_vs_shell_getdata.sh ├── awk_vs_shell_vars.sh ├── basic_example.sh ├── chem_output ├── cond_assign_error.sh ├── cond_begin_end.sh ├── cond_combination.sh ├── cond_comp.sh ├── cond_regex_record.sh ├── cond_regex_var.sh ├── each_line_example.sh ├── each_line_example2.sh ├── each_line_example3.sh ├── ex_duplicate.sh ├── ex_grep.sh ├── ex_passwd.sh ├── less_basic_example.sh ├── vars_arithlogic.sh ├── vars_fields.sh ├── vars_fields_indirect.sh ├── vars_fields_nf.sh ├── vars_fpaware.sh ├── vars_fpconvert.sh ├── vars_from_shell.sh ├── vars_global.sh ├── vars_stringconcat.sh └── vars_stringspecial.sh ├── CITATION ├── LICENCE ├── LICENCE_cc0_filelist ├── LICENSE ├── README.md ├── bash_course.pdf ├── files_for_home ├── .bashrc ├── .bashrc.d │ ├── 00-main │ ├── 05-colorprompt │ ├── 10-completion │ ├── 15-terminals │ └── 20-basicAliases ├── .profile ├── .screenrc ├── .toprc ├── .vimrc ├── README └── install.sh └── resources ├── Project Gutenberg selection ├── Dracula.txt ├── The Count of Monte Cristo.txt ├── The Iliad.txt └── The Yellow Wallpaper.txt ├── charcount.sh ├── chem_output └── qchem.out ├── digitfile ├── directories ├── 1 │ ├── 2 │ │ └── file │ ├── 3 │ │ └── file │ ├── 4 │ │ └── file │ ├── 5 │ │ └── file │ └── 6 │ │ └── file ├── 2 │ ├── 1 │ │ └── file │ ├── 3 │ │ └── file │ ├── 4 │ │ └── file │ ├── 5 │ │ └── file │ └── 6 │ │ └── file ├── 4 │ ├── 1 │ │ └── file │ ├── 2 │ │ └── file │ ├── 3 │ │ └── file │ ├── 5 │ │ └── file │ └── 6 │ │ └── file ├── 5 │ ├── 1 │ │ └── file │ ├── 2 │ │ └── file │ ├── 3 │ │ └── file │ ├── 4 │ │ └── file │ └── 6 │ │ └── file └── 6 │ ├── 1 │ └── file │ ├── 2 │ └── file │ ├── 3 │ └── file │ ├── 4 │ └── file │ └── 5 │ └── file ├── gutenberg └── download.sh ├── matrices ├── 3 b.mtx ├── 3.mtx ├── 3a.mtx ├── bcsstm01.mtx └── lund_b.mtx └── testfile /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .*.swp 3 | -------------------------------------------------------------------------------- /1_intro_Unix/gutenberg: -------------------------------------------------------------------------------- 1 | ../resources/gutenberg/ -------------------------------------------------------------------------------- /1_intro_Unix/matrices: -------------------------------------------------------------------------------- 1 | ../resources/matrices/ -------------------------------------------------------------------------------- /1_intro_Unix/testfile: -------------------------------------------------------------------------------- 1 | ../resources/testfile -------------------------------------------------------------------------------- /2_intro_bash/directories: -------------------------------------------------------------------------------- 1 | ../resources/directories/ -------------------------------------------------------------------------------- /2_intro_bash/gutenberg: -------------------------------------------------------------------------------- 1 | ../resources/gutenberg/ -------------------------------------------------------------------------------- /2_intro_bash/stdout_stderr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # >&2 is a trick to print to stderr instead of stdout. 4 | # There is no need to worry about this for now as this will 5 | # be covered in much more detail in chapter 4. 6 | echo stdout 7 | echo stderr >&2 8 | echo stdout 9 | echo stderr >&2 10 | -------------------------------------------------------------------------------- /3_simple_scripts/cat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cat 3 | -------------------------------------------------------------------------------- /3_simple_scripts/ex_quoting.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Script to extract matching lines from a few project 3 | # gutenberg books and show the results 4 | # $1: Keyword to search for 5 | # 6 | cd resources 7 | ILLIAD=$(&2 10 | exit 1 11 | fi 12 | 13 | C=0 14 | while read line; do 15 | echo "$C: $line" 16 | (( C++)) 17 | done < "$1" 18 | -------------------------------------------------------------------------------- /4_control_io/argparsing.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # assume we allow the arguments -h, -f and --show 3 | # assume further that after -f there needs to be a 4 | # filename following 5 | # 6 | FILE=default_file # default if -f is not given 7 | while [ "$1" ]; do # are there commandline arguments left? 8 | case "$1" in # deal with current argument 9 | -h|--help) echo "-h encountered" 10 | ;; 11 | # it is common to have "long" and "short" options 12 | -f|--file) shift # access filename on $1 13 | echo "-f encountered, file: $1" 14 | FILE=$1 15 | ;; 16 | --show) echo "--show encountered" 17 | ;; 18 | *) echo "Unknown argument: $1" >&2 19 | exit 1 20 | esac 21 | shift # discard current argument 22 | done 23 | -------------------------------------------------------------------------------- /4_control_io/caseexample.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VAR=$@ # VAR assigned to all arguments 3 | case $VAR in 4 | a) echo "VAR is \"a\"" 5 | ;; #<- do not omit these 6 | l*) echo "VAR starts with l" 7 | ;; 8 | l?) echo "VAR is l and something" 9 | echo "Never matched" 10 | # because it is more speciffic 11 | # than pattern l* above 12 | ;; 13 | $1) echo "VAR is \$1" 14 | # i.e. there is none or only one arg 15 | # because exaclty then $1 == $@ 16 | ;; 17 | *) echo "VAR is something else" 18 | ;; 19 | esac 20 | -------------------------------------------------------------------------------- /4_control_io/cat_script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cat 3 | cat 4 | -------------------------------------------------------------------------------- /4_control_io/forbasic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for word in 1 2 dadongs blubber; do 4 | echo $word 5 | done 6 | 7 | for row in 1 2 3 4 5; do 8 | for col in 1 2 3 4 5; do 9 | echo -n "$row.$col " 10 | done 11 | echo 12 | done 13 | -------------------------------------------------------------------------------- /4_control_io/forbreakcontinue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for word in 1 2 dadongs blubber; do 4 | echo "$word" | grep -q da && continue 5 | echo $word 6 | done 7 | 8 | for row in 1 2 3 4 5; do 9 | for col in 1 2 3 4 5; do 10 | [ $col -gt $row ] && break 11 | echo -n "$row.$col " 12 | done 13 | echo 14 | done 15 | -------------------------------------------------------------------------------- /4_control_io/forcommandsubst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | N=10 3 | for i in $(seq $N); do 4 | echo $i 5 | done 6 | -------------------------------------------------------------------------------- /4_control_io/forlscommandsubst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for i in $(ls resources/matrices/*.mtx); do 3 | echo $i 4 | done 5 | -------------------------------------------------------------------------------- /4_control_io/forparameter.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VAR="a b c d" 3 | VAR2="date $(date)" 4 | for i in $VAR $VAR2; do 5 | echo $i #note: all spaces become line breaks 6 | done | head 7 | -------------------------------------------------------------------------------- /4_control_io/forwildcard.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd resources/matrices/ 3 | for i in *.mtx; do 4 | echo $i 5 | done 6 | 7 | # there is no need for a file to be in pwd 8 | for i in ../matrices/?a.mtx; do 9 | echo $i 10 | done 11 | 12 | #NOTE: Non-matching strings still contain * or ? 13 | for i in /non?exist*ant; do 14 | echo $i 15 | done 16 | -------------------------------------------------------------------------------- /4_control_io/gutenberg: -------------------------------------------------------------------------------- 1 | ../resources/gutenberg/ -------------------------------------------------------------------------------- /4_control_io/ifexamples.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ 1 -gt 2 ]; then echo "Cannot happen"; fi 3 | if [ 1 -gt 2 ]; true; then echo "Will always be true"; fi 4 | if ! cd ..; then echo "Could not change directory" >&2 ; fi 5 | echo $PWD 6 | -------------------------------------------------------------------------------- /4_control_io/matrices: -------------------------------------------------------------------------------- 1 | ../resources/matrices/ -------------------------------------------------------------------------------- /4_control_io/more_ifexamples.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | USERARG=0 # bash does not know bolean 3 | # convention is to use 0/1 or y/n for this purpose 4 | 5 | # [ "$1" ] is the same as ! [ -z "$1" ] 6 | if [ "$1" ]; then 7 | USERARG=1 8 | echo "Dear user: Thanks for feeding me input" 9 | fi 10 | 11 | if [ $USERARG -ne 1 ];then 12 | echo "Nothing to do" 13 | exit 0 14 | fi 15 | 16 | if [ "$1" == "status" ]; then 17 | echo "I am very happy" 18 | elif [ "$1" == "weather" ]; then 19 | echo "No clue" 20 | elif [ "$1" == "date" ]; then 21 | date 22 | elif [ -f "$1" ];then 23 | if ! < "$1" grep "robot"; then 24 | echo "Could not find keyword" >&2 25 | exit 1 26 | fi 27 | else 28 | echo "Unknown command: $1" >&2 29 | exit 1 30 | fi 31 | -------------------------------------------------------------------------------- /4_control_io/readerror.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | while true; do #infinite loop 3 | # the next command breaks the loop if it was successful 4 | read -p "Please type 3 numbers >" N1 N2 N3 && break 5 | # if we get here read was not successful 6 | echo "Did not understand your results, please try again" 7 | done 8 | echo "You entered \"$N1\", \"$N2\", \"$N3\"" 9 | -------------------------------------------------------------------------------- /4_control_io/readexample.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | < resources/matrices/3.mtx read COMMENT MTX FLAGS 3 | echo "com: $COMMENT" 4 | echo "mtx: $MTX" 5 | echo "flags: $FLAGS" 6 | -------------------------------------------------------------------------------- /4_control_io/sort_and_indent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ "$1" == "-h" ];then 3 | echo "Scipt sorts lines of file \$1 and adds indention" 4 | echo "Sorted file is written to \$1.sorted" 5 | exit 1 6 | fi 7 | 8 | if [ ! -f "$1" ]; then 9 | echo "File $1 not found" >&2 10 | exit 1 11 | fi 12 | 13 | echo "Writing sorted data to \"$1.sorted\"" 14 | < "$1" sort | while read line; do 15 | echo " $line" 16 | done > "$1.sorted" 17 | -------------------------------------------------------------------------------- /4_control_io/swaplines.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | read OLINE # read the first line 3 | read LINE # read the second line 4 | echo "$LINE" # print second line 5 | echo "$OLINE" # print first line 6 | cat 7 | -------------------------------------------------------------------------------- /4_control_io/whilebreak.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | C=0 4 | while echo "while: $C"; [ $C -lt 3 ]; do 5 | ((C++)) #increase C by 1 6 | echo $C 7 | [ $C -eq 2 ] && break 8 | done 9 | 10 | # a nested loop 11 | N=5 12 | while [ $N -gt 2 ]; do 13 | ((N--)) #decrease N by 1 14 | echo "N is now $N" 15 | M=2 16 | while [ $M -lt 4 ]; do 17 | echo " M is now $M" 18 | ((M++)) 19 | [ $M -eq 3 -a $N -eq 3 ] && break 20 | done 21 | done 22 | -------------------------------------------------------------------------------- /4_control_io/whilecontinue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | C=0 4 | while echo "while: $C"; [ $C -lt 3 ]; do 5 | ((C++)) #increase C by 1 6 | [ $C -eq 2 ] && continue 7 | echo $C 8 | done 9 | 10 | # a nested loop 11 | N=5 12 | while [ $N -gt 2 ]; do 13 | ((N--)) #decrease N by 1 14 | echo "N is now $N" 15 | M=2 16 | while [ $M -lt 4 ]; do 17 | ((M++)) 18 | [ $M -eq 3 -a $N -eq 3 ] && continue 19 | echo " M is now $M" 20 | done 21 | done 22 | -------------------------------------------------------------------------------- /4_control_io/whileloop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | C=0 4 | while echo "while: $C"; [ $C -lt 3 ]; do 5 | ((C++)) #increase C by 1 6 | echo $C 7 | done 8 | 9 | # a nested loop 10 | N=5 11 | while [ $N -gt 2 ]; do 12 | ((N--)) #decrease N by 1 13 | echo "N is now $N" 14 | M=2 15 | while [ $M -lt 4 ]; do 16 | echo " M is now $M" 17 | ((M++)) 18 | done 19 | done 20 | 21 | # more generally the statement 22 | # ((I++)) 23 | # increases the value of the variable I 24 | # by one. Analoguously 25 | # ((I--)) 26 | # decreases it by one. 27 | -------------------------------------------------------------------------------- /4_control_io/whilereadline.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | while read line; do 3 | echo $line 4 | done 5 | -------------------------------------------------------------------------------- /5_variables/arith_expansion.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | N=$1 3 | echo "You kindly supplied: $N" 4 | echo "The square is: $((N*N))" 5 | echo "I can add some stuff: $((1+1,2+N,N+3))" 6 | -------------------------------------------------------------------------------- /5_variables/arith_for_cloop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | MAX=4 3 | for((I=0; I=0; --I));do 8 | echo $I 9 | done 10 | -------------------------------------------------------------------------------- /5_variables/arith_intermediate_floats.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo $((100*13/50)) 3 | echo $((13/50*100)) 4 | -------------------------------------------------------------------------------- /5_variables/arith_logic_ex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ((4==4)); echo $? 3 | ((4!=4)); echo $? 4 | ((3<4 && 4!=4)); echo $? 5 | ((A= 4==4+4)); echo $A 6 | -------------------------------------------------------------------------------- /5_variables/arith_operator_ex.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | (( 3 | C=1, 4 | D=2, 5 | 6 | SUM=C+D, 7 | DIV=C/D, 8 | MOD=C%D, 9 | EXP=D**4 10 | )) 11 | echo "C: $C" 12 | echo "D: $D" 13 | echo 14 | echo "SUM=C+D: $SUM" 15 | echo "DIV=C/D: $DIV" 16 | echo "MOD=C%D: $MOD" 17 | echo "EXP=D**4: $EXP" 18 | 19 | (( 20 | CAFTER=C++, 21 | DAFTER=--D 22 | )) 23 | echo "C: $C" 24 | echo "D: $D" 25 | echo "CAFTER: $CAFTER" 26 | echo "DAFTER: $DAFTER" 27 | -------------------------------------------------------------------------------- /5_variables/arith_replacement.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | C=1 4 | while ((++C < 40)); do 5 | if ((C % 3 == 0));then 6 | echo "divisible by 3: $C" 7 | fi 8 | done 9 | -------------------------------------------------------------------------------- /5_variables/gutenberg: -------------------------------------------------------------------------------- 1 | ../resources/gutenberg/ -------------------------------------------------------------------------------- /5_variables/pexp_assign_default.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | A="value" 3 | echo 1 ${A:="new value"} 4 | echo 2 $A 5 | 6 | unset A 7 | echo 3 ${A:="newer value"} 8 | echo 4 $A 9 | -------------------------------------------------------------------------------- /5_variables/pexp_length.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | STRING="1234567" 3 | ABC="thirteen" 4 | echo ${#STRING} 5 | echo ${#ABC} 6 | -------------------------------------------------------------------------------- /5_variables/pexp_subst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VAR="some super long string" 3 | SE_PAT="s*e" 4 | R_PAT="?r" 5 | REPLACEMENT="FOOOO" 6 | 7 | # the longest match is replaced: 8 | echo ${VAR/$SE_PAT/$REPLACEMENT} 9 | echo ${VAR/$R_PAT/$REPLACEMENT} 10 | 11 | # all matches are replaced 12 | echo ${VAR//$R_PAT/$REPLACEMENT} 13 | -------------------------------------------------------------------------------- /5_variables/pexp_substr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VAR="some super long string" 3 | LEN=${#VAR} 4 | 5 | # remove first and last word: 6 | echo ${VAR:4:LEN-10} 7 | 8 | # since parameter expansion is allowed 9 | # in arithmetic expressions 10 | echo ${VAR:2+2:${#VAR}-10} 11 | -------------------------------------------------------------------------------- /5_variables/pexp_use_alternate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ALTERNATE="alternate" 3 | A="value" 4 | echo 1 ${A:+${ALTERNATE}} 5 | echo 2 $A 6 | 7 | unset A 8 | echo 3 ${A:+${ALTERNATE}} 9 | echo 4 $A 10 | -------------------------------------------------------------------------------- /5_variables/pexp_use_default.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | DEFAULT="default" 3 | A="value" 4 | echo 1 ${A:-${DEFAULT}} 5 | echo 2 $A 6 | 7 | unset A 8 | echo 3 ${A:-${DEFAULT}} 9 | echo 4 $A 10 | -------------------------------------------------------------------------------- /6_functions_subshells/cleanup_notrap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | TMP=$(mktemp) # create temporary file 3 | 4 | # add some stuff to it 5 | echo "data" >> "$TMP" 6 | 7 | ## 8 | # many lines of code 9 | ## 10 | 11 | # and now we forgot about the teporary file 12 | if [ "$CONDITION" != "true" ]; then 13 | exit 0 14 | fi 15 | 16 | ## 17 | # many more lines of code 18 | ## 19 | 20 | #cleanup 21 | rm $TMP 22 | -------------------------------------------------------------------------------- /6_functions_subshells/cleanup_trap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | TMP=$(mktemp) # create temporary file 3 | 4 | # define the cleanup routine 5 | cleanup() { 6 | echo cleanup called 7 | rm $TMP 8 | } 9 | # make cleanup be called WHENEVER the shell exits 10 | trap cleanup EXIT 11 | 12 | # add some stuff to it 13 | echo "data" >> "$TMP" 14 | 15 | ## 16 | # many lines of code 17 | ## 18 | 19 | # and now we forgot about the teporary file 20 | if [ "$CONDITION" != "true" ]; then 21 | exit 0 22 | fi 23 | 24 | ## 25 | # many more lines of code 26 | ## 27 | 28 | #no need to do explicit cleanup 29 | -------------------------------------------------------------------------------- /6_functions_subshells/fun_arguments.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | argument_analysis() { 4 | echo $1 5 | echo $2 6 | echo $@ 7 | echo $# 8 | } 9 | 10 | # call function 11 | argument_analysis 1 "2 3" 4 5 12 | -------------------------------------------------------------------------------- /6_functions_subshells/fun_bad.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # a bad example 3 | 4 | if [ "$1" == "-h" -o "$1" == "--help" ];then 5 | echo "Script to display basic information in an mtx file" 6 | exit 0 7 | fi 8 | 9 | foo() { 10 | echo $NONZERO 11 | } 12 | 13 | DATA="" 14 | 15 | check2() { 16 | if [ -z "$DATA" ]; then 17 | echo "Can't read file" >&2 18 | return 1 19 | fi 20 | return 0 21 | } 22 | 23 | blubb() { 24 | echo $ROW 25 | } 26 | 27 | check1() { 28 | if [ ! -r "$1" ]; then 29 | echo "Can't read file" >&2 30 | return 1 31 | fi 32 | return 0 33 | } 34 | 35 | check1 "$1" || exit 1 36 | 37 | fun1() { 38 | DATA=$(< "$1" grep -v "%" | head -n1) 39 | } 40 | 41 | fun1 "$1" 42 | check2 || exit 1 43 | 44 | reader() { 45 | echo $DATA | { 46 | read COL ROW NONZERO 47 | } 48 | } 49 | 50 | reader 51 | echo -n "No rows: "; blubb 52 | 53 | tester() { 54 | echo $COL 55 | } 56 | echo -n "No cols: "; tester 57 | echo -n "No nonzero: "; foo 58 | 59 | exit 0 60 | -------------------------------------------------------------------------------- /6_functions_subshells/fun_good.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # a good example 3 | 4 | mtr_read_head() { 5 | #$1: file name of mtx file 6 | # echos the first content line (including the matrix size) to stdout 7 | # returns 0 if all is well 8 | # returns 1 if an error occurred (file could not be read) 9 | 10 | # check we can read the file 11 | [ ! -r "$1" ] && return 1 12 | 13 | # get the data 14 | local DATA=$(< "$1" grep -v "%" | head -n1) 15 | 16 | # did we get any data? 17 | if [ "$DATA" ]; then 18 | echo "$DATA" 19 | return 0 20 | else 21 | return 1 22 | fi 23 | } 24 | 25 | gcut() { 26 | # this a more general version of cut 27 | # that can be tuned using the IFS 28 | # 29 | # $1: n -- the field to get from stdin 30 | # return 1 on any error 31 | 32 | local n=$1 33 | if ((n<1)); then 34 | return 1 35 | elif ((n==1)); then 36 | local FIELD BIN 37 | 38 | # read two fields and return 39 | # the first we care about 40 | read FIELD BIN 41 | echo "$FIELD" 42 | else 43 | local FIELD REST 44 | 45 | # discard the first field 46 | read FIELD REST 47 | 48 | # and call myself 49 | echo "$REST" | gcut $((n-1)) 50 | fi 51 | } 52 | 53 | mtx_get_rows() { 54 | # get the number of rows in the matrix from an mtx file 55 | # echo the result to stdout 56 | # return 1 if there is an error 57 | 58 | local DATA 59 | 60 | # read the data and return when error 61 | DATA=$(mtr_read_head "$1") #|| return $? 62 | # parse the data -> row is the first field 63 | echo "$DATA" | gcut 1 64 | 65 | # implicit return of return code of gcut 66 | } 67 | 68 | mtx_get_cols() { 69 | # get the number of columns in the matrix file 70 | # return 1 on any error 71 | 72 | local DATA 73 | DATA=$(mtr_read_head "$1") || return $? 74 | echo "$DATA" | gcut 2 #cols on field 2 75 | } 76 | 77 | mtx_get_nonzero() { 78 | # get the number of nonzero entries in the matrix file 79 | # return 1 on any error 80 | 81 | local DATA 82 | DATA=$(mtr_read_head "$1") || return $? 83 | echo "$DATA" | gcut 3 #cols on field 2 84 | } 85 | 86 | mtx_get_comment() { 87 | mtx_fill_cache "$1" && echo "$__MTX_INFO_CACHE_COMMENT" 88 | } 89 | 90 | #################################### 91 | # the main script 92 | 93 | if [ "$1" == "-h" -o "$1" == "--help" ];then 94 | echo "Script to display basic information in an mtx file" 95 | exit 0 96 | fi 97 | 98 | if [ ! -r "$1" ]; then 99 | echo "Please specify mtx file as first arg." >&2 100 | exit 1 101 | fi 102 | 103 | echo "No rows: $(mtx_get_rows "$1")" 104 | echo "No cols: $(mtx_get_cols "$1")" 105 | echo "No nonzero: $(mtx_get_nonzero "$1")" 106 | 107 | exit 0 108 | -------------------------------------------------------------------------------- /6_functions_subshells/fun_pipe.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Typically functions defined at the top and 3 | # global code at the bottom 4 | 5 | readfct() { 6 | # Read two lines from stdin 7 | read test 8 | read test2 9 | 10 | # Write them to stdout 11 | echo "Your input:" 12 | echo $test2 $test 13 | } 14 | 15 | log_error() { 16 | # Write to stderr only 17 | echo "ERROR: Something bad happened!" >&2 18 | } 19 | 20 | # Still see the error, since only stdout redirected 21 | log_error >/dev/null 22 | 23 | # Pipe to/from a function 24 | { 25 | echo line1 26 | echo line 2 27 | } | readfct | grep 2 28 | -------------------------------------------------------------------------------- /6_functions_subshells/fun_return.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | comment_on_letter() { 4 | if [ "$1" != "a" ]; then 5 | echo "Gwk ... I only like a, not $1" 6 | return 1 7 | fi 8 | echo "Ah ... a is my favorite letter" 9 | } 10 | 11 | is_letter_b() { 12 | [ "$1" == "b" ] 13 | } 14 | 15 | VAR=b 16 | if is_letter_b "$VAR"; then 17 | comment_on_letter "$VAR" 18 | echo "RC of comment_on_letter: $?" 19 | fi 20 | 21 | comment_on_letter "a" 22 | echo "RC of comment_on_letter: $?" 23 | -------------------------------------------------------------------------------- /6_functions_subshells/fun_vars.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Global variables: 3 | VAR1=vvv 4 | VAR3=lll 5 | 6 | variable_test() { 7 | local FOO=bar 8 | echo $VAR1 9 | VAR3=$FOO 10 | } 11 | 12 | echo "--$VAR1--$FOO--$VAR3--" 13 | variable_test 14 | echo "--$VAR1--$FOO--$VAR3--" 15 | -------------------------------------------------------------------------------- /6_functions_subshells/group_unpack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | < resources/matrices/3.mtx grep -v "%" | { 3 | read ROW COL ENTRIES 4 | echo "Number of rows: $ROW" 5 | echo "Number of cols: $COL" 6 | echo "Number of entries: $ENTRIES" 7 | echo "List of all entries:" 8 | while read ROW COL VAL; do 9 | echo " M($ROW,$COL) = $VAL" 10 | done 11 | } 12 | -------------------------------------------------------------------------------- /6_functions_subshells/group_write_file.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | { 4 | echo "A first message to stderr" >&2 5 | echo "Grepping for fish" | grep -w fish 6 | echo "Hello to stdout" 7 | echo "Again to to stderr" >&2 8 | } > /tmp/file-stdout 2> /tmp/file-stderr 9 | 10 | # print content 11 | echo "Everything in /tmp/file-stdout:" 12 | echo ----------- 13 | cat /tmp/file-stdout 14 | echo ----------- 15 | echo 16 | echo "Everything in /tmp/file-stderr:" 17 | echo ----------- 18 | cat /tmp/file-stderr 19 | echo ----------- 20 | 21 | # cleanup 22 | rm /tmp/file-stdout /tmp/file-stderr 23 | -------------------------------------------------------------------------------- /6_functions_subshells/map.lib.sh: -------------------------------------------------------------------------------- 1 | map() { 2 | COMMAND=$1 # read the command 3 | shift # shift $1 away 4 | 5 | # now for all remaining arguments execute 6 | # the command with the argument: 7 | for val in "$@"; do 8 | $COMMAND $val 9 | done 10 | } 11 | -------------------------------------------------------------------------------- /6_functions_subshells/matrices: -------------------------------------------------------------------------------- 1 | ../resources/matrices/ -------------------------------------------------------------------------------- /6_functions_subshells/overwrite_fail.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | test() { 3 | echo "Hi from the test function" 4 | } 5 | test 1 -gt 2 && echo "1 is greater than 2" 6 | -------------------------------------------------------------------------------- /6_functions_subshells/overwrite_loop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | C=0 3 | [() { # overwrite the [ builtin 4 | 5 | # Increase and print a counter 6 | ((C++)) 7 | echo $C 8 | 9 | # this gives an infinite loop: 10 | if [ $C -gt 100 ] ; then 11 | echo "never printed" 12 | exit 1 13 | fi 14 | } 15 | 16 | if [ "$VAR" ]; then 17 | echo "VAR is not empty" #never reached 18 | fi 19 | -------------------------------------------------------------------------------- /6_functions_subshells/overwrite_mostrecent.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Default logging function 3 | log() { echo "$@"; } 4 | 5 | if [ "$1" == "--quiet" ]; then 6 | # Empty logging function: 7 | # Works since ":" is the idle command doing exactly nothing 8 | log() { :; } 9 | fi 10 | 11 | # Log something ... or not 12 | log Hello and welcome to this script! 13 | -------------------------------------------------------------------------------- /6_functions_subshells/source_exercise.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # do something in order to get the functions 4 | # add and multiply from the exercise we had before 5 | 6 | # add 4 and 5 and print result to stdout: 7 | add 4 5 8 | 9 | # multiply 6 and 7 and print result to stdout: 10 | multiply 6 7 11 | -------------------------------------------------------------------------------- /6_functions_subshells/source_sourcability.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | mtr_read_head() { 4 | #$1: file name of mtx file 5 | # echos the first content line (including the matrix size) to stdout 6 | # returns 0 if all is well 7 | # returns 1 if an error occurred (file could not be read) 8 | 9 | # check we can read the file 10 | [ ! -r "$1" ] && return 1 11 | 12 | # get the data 13 | local DATA=$(< "$1" grep -v "%" | head -n1) 14 | 15 | # did we get any data? 16 | if [ "$DATA" ]; then 17 | echo "$DATA" 18 | return 0 19 | else 20 | return 1 21 | fi 22 | } 23 | 24 | gcut() { 25 | # this a more general version of cut 26 | # that can be tuned using the IFS 27 | # 28 | # $1: n -- the field to get from stdin 29 | # return 1 on any error 30 | 31 | local n=$1 32 | if ((n<1)); then 33 | return 1 34 | elif ((n==1)); then 35 | local FIELD BIN 36 | 37 | # read two fields and return 38 | # the first we care about 39 | read FIELD BIN 40 | echo "$FIELD" 41 | else 42 | local FIELD REST 43 | 44 | # discard the first field 45 | read FIELD REST 46 | 47 | # and call myself 48 | echo "$REST" | gcut $((n-1)) 49 | fi 50 | } 51 | 52 | mtx_get_rows() { 53 | # get the number of rows in the matrix from an mtx file 54 | # echo the result to stdout 55 | # return 1 if there is an error 56 | 57 | local DATA 58 | 59 | # read the data and return when error 60 | DATA=$(mtr_read_head "$1") #|| return $? 61 | # parse the data -> row is the first field 62 | echo "$DATA" | gcut 1 63 | 64 | # implicit return of return code of gcut 65 | } 66 | 67 | mtx_get_cols() { 68 | # get the number of columns in the matrix file 69 | # return 1 on any error 70 | 71 | local DATA 72 | DATA=$(mtr_read_head "$1") || return $? 73 | echo "$DATA" | gcut 2 #cols on field 2 74 | } 75 | 76 | mtx_get_nonzero() { 77 | # get the number of nonzero entries in the matrix file 78 | # return 1 on any error 79 | 80 | local DATA 81 | DATA=$(mtr_read_head "$1") || return $? 82 | echo "$DATA" | gcut 3 #cols on field 2 83 | } 84 | 85 | mtx_get_comment() { 86 | mtx_fill_cache "$1" && echo "$__MTX_INFO_CACHE_COMMENT" 87 | } 88 | 89 | #if we have been sourced this exits execution here: 90 | # so by sourcing we can use gcut, mtx_get_rows, ... 91 | return 0 &> /dev/null 92 | 93 | #################################### 94 | 95 | if [ "$1" == "-h" -o "$1" == "--help" ];then 96 | echo "Script to display basic information in an mtx file" 97 | exit 0 98 | fi 99 | 100 | if [ ! -r "$1" ]; then 101 | echo "Please specify mtx file as first arg." >&2 102 | exit 1 103 | fi 104 | 105 | echo "No rows: $(mtx_get_rows "$1")" 106 | echo "No cols: $(mtx_get_cols "$1")" 107 | echo "No nonzero: $(mtx_get_nonzero "$1")" 108 | 109 | exit 0 110 | -------------------------------------------------------------------------------- /6_functions_subshells/sourcing.lib.sh: -------------------------------------------------------------------------------- 1 | testfunction() { 2 | echo "Hey I exist" 3 | } 4 | VAR=foo 5 | -------------------------------------------------------------------------------- /6_functions_subshells/sourcing.script.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Extend path such that the bash can find the script 4 | # to be sourced. 5 | PATH="$PATH:6_functions_subshells" 6 | . sourcing.lib.sh # lookup of sourcing.lib.sh performed using PATH 7 | 8 | echo $VAR 9 | testfunction 10 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_cdifs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Here want to do some stuff in the PWD 3 | echo "The list of files in the PWD:" 4 | ls | head -n 4 5 | ( 6 | # Alter the environment: 7 | # different working directory and IFS separator 8 | cd resources/matrices 9 | IFS=":" 10 | 11 | echo 12 | echo "The list of files in resources/matrices" 13 | ls | head -n4 14 | 15 | echo 16 | echo "Some paths:" 17 | for path in $PATH; do 18 | echo $path 19 | done | head -n4 20 | ) 21 | 22 | # and we are back to the original 23 | echo 24 | for i in word1:word2; do 25 | echo $i 26 | done 27 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_commandsubst.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | A=-1 3 | # everything between $( and ) in the next 4 | # line is a subshell. The increment is lost. 5 | echo $( ((A++)); echo $A ) 6 | echo $A 7 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_example.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | A=3 3 | B=6 4 | pwd 5 | ( 6 | A=5 #locally change varible 7 | echo "Hello from subshell: A: $A B: $B" 8 | cd .. #locally change directory 9 | pwd 10 | ) 11 | echo "Hello from main shell: A: $A B: $B" 12 | pwd 13 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_exercise.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # initial note: 3 | # this script is deliberately made cumbersome 4 | # this script is bad style. DO NOT COPY 5 | KEYWORD=$1 6 | 7 | ERROR=0 # Error flag 8 | [ ! -f "bash_course.pdf" ] && ( 9 | echo "Please run at the top of the bash_course repository" >&2 10 | ERROR=1 11 | ) 12 | 13 | # Change to the resources directory 14 | if ! cd resources/; then 15 | echo "Could not change to resources directory" >&2 16 | echo "Are we in the right directory?" 17 | ERROR=1 18 | fi 19 | 20 | [ $ERROR -eq 1 ] && ( 21 | echo "A fatal error occurred" 22 | exit 1 23 | ) 24 | 25 | # List of all matching files 26 | MATCHING= 27 | 28 | # Add files to list 29 | ls matrices/*.mtx gutenberg/*.txt | while read line; do 30 | if < "$line" grep -q "$KEYWORD"; then 31 | MATCHING=$( 32 | echo "$MATCHING" 33 | echo $line 34 | ) 35 | fi 36 | done 37 | 38 | # count the number of matches: 39 | COUNT=$(echo "$MATCHING" | wc -l) 40 | 41 | if [ $COUNT -gt 0 ]; then 42 | echo "We found $COUNT matches!" 43 | exit 0 44 | else 45 | echo "No match" >&2 46 | exit 1 47 | fi 48 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_pack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Some input state inside the main shell 3 | N=15 4 | RES=$( 5 | # Do calculations in the subshell 6 | SUM=$((N+13)) 7 | SQUARE=$((N*N)) 8 | 9 | # Pack the results with a : 10 | # i.e. echo them separated by a : 11 | echo "$SUM:$SQUARE" 12 | ) 13 | 14 | # now use cut to unpack them and recover 15 | # the individual values 16 | SUM=$(echo "$RES" | cut -d: -f1) 17 | SQUARE=$(echo "$RES" | cut -d: -f2) 18 | 19 | # Echo the results: 20 | echo "sum: $SUM" 21 | echo "square: $SQUARE" 22 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_pipes.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | C=0 # initialise counter 3 | < resources/testfile grep "e" | while read line; do 4 | # subshell here! 5 | ((C++)) 6 | done 7 | # Postprocessing not in subshell any more: 8 | echo "We found $C matches for \"e\"." 9 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_pipes_correct.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | COUNT=$(< resources/testfile grep "e" | { 3 | C=0 4 | while read line; do 5 | ((C++)) 6 | done 7 | echo $C 8 | }) 9 | 10 | # Do postprocessing on COUNT, e.g. print 11 | echo "We found $COUNT matches for \"e\"." 12 | -------------------------------------------------------------------------------- /6_functions_subshells/subshell_pipes_correct2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | < resources/testfile grep "e" | { 3 | C=0 4 | while read line; do 5 | ((C++)) 6 | done 7 | echo "We found $C matches for \"e\"." 8 | } 9 | -------------------------------------------------------------------------------- /7_regular_expressions/chem_output: -------------------------------------------------------------------------------- 1 | ../resources/chem_output -------------------------------------------------------------------------------- /7_regular_expressions/grep_only_matching.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Plain grep gives:" 4 | < resources/testfile grep ".[a-f]$" 5 | 6 | echo "grep -o gives:" 7 | < resources/testfile grep -o ".[a-f]$" 8 | -------------------------------------------------------------------------------- /7_regular_expressions/grep_vs_egrep.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # number of rounds: 4 | N=10000 5 | 6 | use_grep() { 7 | #$@ args passed to grep 8 | local TEXT=$(cat) 9 | 10 | for((i=0; i 4 { printf $3 } 8 | ' 9 | -------------------------------------------------------------------------------- /8_awk/awk_vs_shell_getdata.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # some data we have available on the shell 4 | VAR="3.4" 5 | OTHER="6.7" 6 | 7 | # do calculation in awk and return packed data 8 | RES=$(echo "$VAR $OTHER" | awk '{ 9 | sum=$1 + $2 10 | product=$1*$2 11 | print sum "+" product 12 | }') 13 | 14 | # unpack the data on the shell again: 15 | SUM=$(echo "$RES" | cut -f1 -d+) 16 | PRODUCT=$(echo "$RES" | cut -f2 -d+) 17 | 18 | # use it in an echo 19 | echo "The sum is: $SUM" 20 | echo "The product is: $PRODUCT" 21 | -------------------------------------------------------------------------------- /8_awk/awk_vs_shell_vars.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # define a shell variable: 4 | A=laber 5 | 6 | echo | awk ' 7 | # define an awk variable and print it: 8 | { N=4; print N } 9 | 10 | # print something using the non-present shell variable A: 11 | { print "We have no clue about string A: \"" A "\"" } 12 | ' 13 | 14 | # show that the shell knows A, but has no clue about N: 15 | echo --$A--$N-- 16 | -------------------------------------------------------------------------------- /8_awk/basic_example.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | { 3 | echo "awk input" 4 | } | awk ' 5 | # missing condition => always done 6 | { print "Hi user. This is what you gave me:" } 7 | 8 | # condition which is true and no action 9 | # => default print action 10 | 1 == 1 11 | 12 | # another message which is always printed 13 | { print "Thank you" } 14 | ' 15 | -------------------------------------------------------------------------------- /8_awk/chem_output: -------------------------------------------------------------------------------- 1 | ../resources/chem_output/ -------------------------------------------------------------------------------- /8_awk/cond_assign_error.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | { 3 | echo "not important" 4 | echo "data begin" 5 | echo "1 2 3" 6 | echo "end" 7 | echo "other things" 8 | } | awk ' 9 | BEGIN { 10 | # initialise pr as 0 11 | # printing should only be done if pr==1 12 | pr=0 13 | } 14 | 15 | # start printing if line starts with data begin 16 | /^data begin/ { pr=1 } 17 | 18 | # stop printing if end encountered 19 | /end$/ { pr=0 } 20 | 21 | # print first two fields of current line 22 | # error here 23 | pr = 1 { print $1 " " $2 } 24 | ' 25 | -------------------------------------------------------------------------------- /8_awk/cond_begin_end.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | { 4 | echo "data data data" 5 | echo "data data data" 6 | echo "data data data" 7 | } | awk ' 8 | BEGIN { number=0 } # optional: all uninitialised 9 | # variables are 0 10 | { number += NF } 11 | END { print number } 12 | ' 13 | -------------------------------------------------------------------------------- /8_awk/cond_combination.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VAR="15" 3 | 4 | echo "data data data" | awk -v "var=$VAR" ' 5 | var !~ /^[0-9]$/ && $2 == "data" { 6 | print "Both are true" 7 | } 8 | ' 9 | -------------------------------------------------------------------------------- /8_awk/cond_comp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VAR="print" 3 | echo "some test data 5.3" | awk -v "var=$VAR" ' 4 | var == "print" { print $2 } 5 | var == "noprint" { print "no" } 6 | $4 > 2 { print "fulfilled" } 7 | ' 8 | -------------------------------------------------------------------------------- /8_awk/cond_regex_record.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | { 4 | echo "not important" 5 | echo "data begin: 1 2 3" 6 | echo "nodata: itanei taen end" 7 | echo "other things" 8 | } | awk ' 9 | # start printing if line starts with data begin 10 | /^data begin/ { pr=1 } 11 | 12 | # print current line 13 | pr == 1 14 | 15 | # stop printing if end encountered 16 | /end$/ { pr=0 } 17 | ' 18 | -------------------------------------------------------------------------------- /8_awk/cond_regex_var.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | VAR="15" 3 | 4 | echo "data data data" | awk -v "var=$VAR" ' 5 | # executed if var is a single-digit number: 6 | var ~ /^[0-9]$/ { 7 | print "var is a single digit number" 8 | } 9 | 10 | # executed if var is NOT a single-digit 11 | var !~ /^[0-9]$/ { 12 | print "var is not a single digit" 13 | } 14 | 15 | $2 ~ /^.a/ { 16 | print "2nd field has a as second char" 17 | } 18 | ' 19 | -------------------------------------------------------------------------------- /8_awk/each_line_example.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # function generating the output 4 | output() { 5 | echo "line 1" 6 | } 7 | 8 | echo "Program1:" 9 | # a small awk program which just prints the output 10 | # line-by-line as it is 11 | # we use a condition which is always true and the 12 | # default action here (implicit print of the whole 13 | # record, i.e. line) 14 | output | awk '1==1' 15 | 16 | echo 17 | echo "Program2:" 18 | # a program with two rules: 19 | # one which does the default printing 20 | # and a second one which prints an extra line 21 | # unconditionally 22 | output | awk ' 23 | 1==1 #default print action 24 | { print "some stuff" } 25 | ' 26 | -------------------------------------------------------------------------------- /8_awk/each_line_example2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # function generating the output 4 | output() { 5 | echo "line 1" 6 | echo "line 2" 7 | } 8 | 9 | echo "Program1:" 10 | output | awk '1==1' 11 | 12 | echo 13 | echo "Program2:" 14 | output | awk ' 15 | 1==1 #default print action 16 | { print "some stuff" } 17 | ' 18 | -------------------------------------------------------------------------------- /8_awk/each_line_example3.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # function generating the output 4 | output() { 5 | echo "line 1" 6 | echo "line 2" 7 | echo "line 3" 8 | } 9 | 10 | echo "Program1:" 11 | output | awk '1==1' 12 | 13 | echo 14 | echo "Program2:" 15 | output | awk ' 16 | 1==1 #default print action 17 | { print "some stuff" } 18 | ' 19 | -------------------------------------------------------------------------------- /8_awk/ex_duplicate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | awk ' 3 | # change the record separator to anything 4 | # which is not an alphanumeric (we consider 5 | # a different word to start at each alphnum- 6 | # eric character) 7 | BEGIN { RS="[^[:alnum:]]+" } 8 | # now each word is a separate record 9 | 10 | $0 == prev { print prev; ret=1; next } 11 | { prev = $0 } 12 | END { exit ret } 13 | ' 14 | -------------------------------------------------------------------------------- /8_awk/ex_grep.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # here we use DOUBLE quotes to have the shell 4 | # insert the search pattern where awk expects it 5 | awk "/$1/" 6 | -------------------------------------------------------------------------------- /8_awk/ex_passwd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | < /etc/passwd awk -v "user=$USER" ' 3 | # set field separator to be : or , or many of these chars 4 | BEGIN {FS="[:,]+" } 5 | 6 | # found the entry for the current user? 7 | $1 == user { 8 | # print some info: 9 | print "Your username: " $1 10 | print "Your uid: " $3 11 | print "Your full name: " $5 12 | print "Your home: " $6 13 | print "Your default shell: " $7 14 | } 15 | ' 16 | -------------------------------------------------------------------------------- /8_awk/less_basic_example.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | { 3 | echo "awk input 1" 4 | echo "awk input 2" 5 | } | awk ' 6 | # missing condition => always done 7 | { print "Hi user. This is what you gave me:" } 8 | 9 | # condition which is true and no action 10 | # => default print action 11 | 1 == 1 12 | 13 | # another message which is always printed 14 | { print "Thank you" } 15 | ' 16 | -------------------------------------------------------------------------------- /8_awk/vars_arithlogic.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo | awk '{ 3 | v=3 4 | u=4 5 | 6 | print v "-" u "=" v-u 7 | 8 | v+=2 9 | u*=0.5 10 | 11 | print v "%" u "=" v%u 12 | 13 | 14 | # exponentiation is ^ 15 | print v "^" u "=" v^u 16 | 17 | # need to enforce that comparison operatiors are 18 | # executed before concatenation of the resulting 19 | # strings. Not quite sure why. 20 | print v "==" u ": " (v==u) 21 | print v "!=" u ": " (v!=u) 22 | print v "!=" u "||" v "==" u ": " (v!=u||v==u) 23 | print v "!=" u "&&" v "==" u ": " (v!=u&&v==u) 24 | }' 25 | -------------------------------------------------------------------------------- /8_awk/vars_fields.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo -e "some 7 words\tfor awk to process" | awk ' 3 | { 4 | print "arithmetic: " 2*$2 5 | print $4 " " $1 6 | } 7 | 8 | { 9 | print "You gave me: " $0 10 | } 11 | ' 12 | -------------------------------------------------------------------------------- /8_awk/vars_fields_indirect.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo -e "some words for\tawk to process" | awk ' 3 | { 4 | v=5 5 | print $v 6 | }' 7 | -------------------------------------------------------------------------------- /8_awk/vars_fields_nf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "some words for awk to process" | awk ' 3 | { 4 | print "There are " NF " fields and the last is " $NF 5 | }' 6 | -------------------------------------------------------------------------------- /8_awk/vars_fpaware.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo | awk '{ 3 | var="4.5" 4 | var2=2.4 5 | print var "+" var2 "=" var+var2 6 | }' 7 | -------------------------------------------------------------------------------- /8_awk/vars_fpconvert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo | awk '{ 3 | floatvar=3.2 4 | stringvar="abra" #cannot be converted to number 5 | floatstring="1e-2" #can be converted to number 6 | 7 | # calculation 8 | res1 = floatvar+floatstring 9 | res2 = floatvar + stringvar 10 | 11 | print res1 " " res2 12 | }' 13 | -------------------------------------------------------------------------------- /8_awk/vars_from_shell.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | VAR="abc" 4 | NUMBER="5.4" 5 | OTHER="3" 6 | 7 | # ... 8 | 9 | echo "data 1 2 3" | awk -v "var=$VAR" -v "num=$NUMBER" -v "other=$OTHER" ' 10 | { 11 | print $1 " and " var 12 | 13 | sum = $2 + $3 14 | print num*sum 15 | print $4 " " other 16 | } 17 | ' 18 | -------------------------------------------------------------------------------- /8_awk/vars_global.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo | awk ' 3 | { N=4; A="blub" } 4 | { print N } 5 | { print "String " A " has the length " length(A) } 6 | ' 7 | -------------------------------------------------------------------------------- /8_awk/vars_stringconcat.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo | awk '{ print "string1" " " "string2" }' 3 | -------------------------------------------------------------------------------- /8_awk/vars_stringspecial.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo | awk ' 3 | { print "test\ttest2\ntest3" } 4 | ' 5 | -------------------------------------------------------------------------------- /CITATION: -------------------------------------------------------------------------------- 1 | To cite the bash course notes, please use: 2 | 3 | @misc{BashCourse2017, 4 | author = {Michael F. Herbst}, 5 | title = {Advanced bash scripting 2017}, 6 | month = nov, 7 | year = 2017, 8 | doi = {10.5281/zenodo.1045332}, 9 | url = {https://doi.org/10.5281/zenodo.1045332} 10 | } 11 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | The files in this repository are under different licences: 2 | 3 | All files listed explicitly listed in the file LICENCE_cc0_filelist are licensed 4 | under a CC0 1.0 Universal Licence. To view a copy of this license, visit 5 | https://creativecommons.org/publicdomain/zero/1.0/. 6 | 7 | Anything else in this repository, including the main script bash_course.pdf, is licensed 8 | under a Creative Commons Attribution-ShareAlike 4.0 International License. 9 | To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. 10 | -------------------------------------------------------------------------------- /LICENCE_cc0_filelist: -------------------------------------------------------------------------------- 1 | 2_intro_bash/stdout_stderr.sh 2 | 3_simple_scripts/cat.sh 3 | 3_simple_scripts/ex_quoting.sh 4 | 3_simple_scripts/first_script.sh 5 | 3_simple_scripts/hello.sh 6 | 3_simple_scripts/quoting_example.sh 7 | 3_simple_scripts/special_parameters.sh 8 | 4_control_io/addlinenumbers.sh 9 | 4_control_io/argparsing.sh 10 | 4_control_io/caseexample.sh 11 | 4_control_io/cat_script.sh 12 | 4_control_io/forbasic.sh 13 | 4_control_io/forbreakcontinue.sh 14 | 4_control_io/forcommandsubst.sh 15 | 4_control_io/forlscommandsubst.sh 16 | 4_control_io/forparameter.sh 17 | 4_control_io/forwildcard.sh 18 | 4_control_io/ifexamples.sh 19 | 4_control_io/IFS_for.sh 20 | 4_control_io/IFSread.sh 21 | 4_control_io/more_ifexamples.sh 22 | 4_control_io/readerror.sh 23 | 4_control_io/readexample.sh 24 | 4_control_io/sort_and_indent.sh 25 | 4_control_io/swaplines.sh 26 | 4_control_io/whilebreak.sh 27 | 4_control_io/whilecontinue.sh 28 | 4_control_io/whileloop.sh 29 | 4_control_io/whilereadline.sh 30 | 5_variables/arith_expansion.sh 31 | 5_variables/arith_for_cloop.sh 32 | 5_variables/arith_intermediate_floats.sh 33 | 5_variables/arith_logic_ex.sh 34 | 5_variables/arith_operator_ex.sh 35 | 5_variables/arith_replacement.sh 36 | 5_variables/pexp_assign_default.sh 37 | 5_variables/pexp_length.sh 38 | 5_variables/pexp_substr.sh 39 | 5_variables/pexp_subst.sh 40 | 5_variables/pexp_use_alternate.sh 41 | 5_variables/pexp_use_default.sh 42 | 6_functions_subshells/cleanup_notrap.sh 43 | 6_functions_subshells/cleanup_trap.sh 44 | 6_functions_subshells/fun_arguments.sh 45 | 6_functions_subshells/fun_bad.sh 46 | 6_functions_subshells/fun_good.sh 47 | 6_functions_subshells/fun_pipe.sh 48 | 6_functions_subshells/fun_return.sh 49 | 6_functions_subshells/fun_vars.sh 50 | 6_functions_subshells/group_unpack.sh 51 | 6_functions_subshells/group_write_file.sh 52 | 6_functions_subshells/map.lib.sh 53 | 6_functions_subshells/overwrite_fail.sh 54 | 6_functions_subshells/overwrite_loop.sh 55 | 6_functions_subshells/overwrite_mostrecent.sh 56 | 6_functions_subshells/source_exercise.sh 57 | 6_functions_subshells/source_sourcability.sh 58 | 6_functions_subshells/sourcing.lib.sh 59 | 6_functions_subshells/sourcing.script.sh 60 | 6_functions_subshells/subshell_cdifs.sh 61 | 6_functions_subshells/subshell_commandsubst.sh 62 | 6_functions_subshells/subshell_example.sh 63 | 6_functions_subshells/subshell_exercise.sh 64 | 6_functions_subshells/subshell_pack.sh 65 | 6_functions_subshells/subshell_pipes_correct2.sh 66 | 6_functions_subshells/subshell_pipes_correct.sh 67 | 6_functions_subshells/subshell_pipes.sh 68 | 7_regular_expressions/grep_only_matching.sh 69 | 7_regular_expressions/grep_vs_egrep.sh 70 | 7_regular_expressions/regex_alternation.sh 71 | 7_regular_expressions/regex_anchorend.sh 72 | 7_regular_expressions/regex_anchor.sh 73 | 7_regular_expressions/regex_bracket.sh 74 | 7_regular_expressions/regex_compbracket.sh 75 | 7_regular_expressions/regex_grouping.sh 76 | 7_regular_expressions/regex_plus.sh 77 | 7_regular_expressions/regex_posixclass.sh 78 | 7_regular_expressions/regex_star.sh 79 | 7_regular_expressions/sed_altmatch.sh 80 | 7_regular_expressions/sed_delete.sh 81 | 7_regular_expressions/sed_double_quotes.sh 82 | 7_regular_expressions/sed_insertion.sh 83 | 7_regular_expressions/sed_substitute.sh 84 | 8_awk/action_exit.sh 85 | 8_awk/action_next.sh 86 | 8_awk/action_printf.sh 87 | 8_awk/awk_vs_shell_getdata.sh 88 | 8_awk/awk_vs_shell_vars.sh 89 | 8_awk/basic_example.sh 90 | 8_awk/cond_assign_error.sh 91 | 8_awk/cond_begin_end.sh 92 | 8_awk/cond_combination.sh 93 | 8_awk/cond_comp.sh 94 | 8_awk/cond_regex_record.sh 95 | 8_awk/cond_regex_var.sh 96 | 8_awk/each_line_example2.sh 97 | 8_awk/each_line_example3.sh 98 | 8_awk/each_line_example.sh 99 | 8_awk/ex_duplicate.sh 100 | 8_awk/ex_grep.sh 101 | 8_awk/ex_passwd.sh 102 | 8_awk/less_basic_example.sh 103 | 8_awk/vars_arithlogic.sh 104 | 8_awk/vars_fields_indirect.sh 105 | 8_awk/vars_fields_nf.sh 106 | 8_awk/vars_fields.sh 107 | 8_awk/vars_fpaware.sh 108 | 8_awk/vars_fpconvert.sh 109 | 8_awk/vars_from_shell.sh 110 | 8_awk/vars_global.sh 111 | 8_awk/vars_stringconcat.sh 112 | 8_awk/vars_stringspecial.sh 113 | resources/charcount.sh 114 | resources/chem_output/qchem.out 115 | resources/digitfile 116 | resources/directories/1/2/file 117 | resources/directories/1/3/file 118 | resources/directories/1/4/file 119 | resources/directories/1/5/file 120 | resources/directories/1/6/file 121 | resources/directories/2/1/file 122 | resources/directories/2/3/file 123 | resources/directories/2/4/file 124 | resources/directories/2/5/file 125 | resources/directories/2/6/file 126 | resources/directories/4/1/file 127 | resources/directories/4/2/file 128 | resources/directories/4/3/file 129 | resources/directories/4/5/file 130 | resources/directories/4/6/file 131 | resources/directories/5/1/file 132 | resources/directories/5/2/file 133 | resources/directories/5/3/file 134 | resources/directories/5/4/file 135 | resources/directories/5/6/file 136 | resources/directories/6/1/file 137 | resources/directories/6/2/file 138 | resources/directories/6/3/file 139 | resources/directories/6/4/file 140 | resources/directories/6/5/file 141 | resources/gutenberg/download.sh 142 | resources/matrices/3a.mtx 143 | resources/matrices/3 b.mtx 144 | resources/matrices/3.mtx 145 | resources/matrices/bcsstm01.mtx 146 | resources/matrices/lund_b.mtx 147 | resources/testfile 148 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | LICENCE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Advanced bash scripting 2017 2 | Script, resources and example code for the course **Advanced bash scripting** 3 | taking place at the Ruprecht-Karls-Universität Heidelberg 4 | from 6th – 10th November 2017. 5 | 6 | Included files: 7 | - [bash_course.pdf](bash_course.pdf): The main lecture notes 8 | - [LICENCE](LICENCE): Overview how files in this repository are licensed. 9 | - [resources/](resources/): Data necessary to run the examples and work on the exercises. 10 | 11 | ## Court order to block access from Project Gutenberg in Germany 12 | As of 3rd March 2018 access to Project Gutenberg is blocked from Germany 13 | due to a court order, see the 14 | [official statement from PGLAF](https://cand.pglaf.org/germany/index.html) 15 | (the organisation hosting Project Gutenberg) for details. 16 | This implies as a user with a German IP address you will be unable to use the 17 | download script mentioned below. 18 | Unfortunately many of the exercises depend on the books from Project Gutenberg 19 | and whilst it is possible to do them without the proper book files, 20 | the results might deviate. 21 | I am currently unaware of a good alternative to obtain the Project Gutenberg 22 | books in a simple way and I am unsure about the 23 | legal status regards hosting them myself. 24 | In the lack of time on my side the excercises will stay broken for now, 25 | which I very much regret. 26 | 27 | ## Setup 28 | Before being able to do the Project Gutenberg-related exercises, you should 29 | run the script ``resources/gutenberg/download.sh`` from the ``resources/gutenberg`` 30 | directory, i.e. 31 | ``` 32 | cd resources/gutenberg 33 | ./download.sh 34 | ``` 35 | 36 | ## Files for home 37 | If you want a more fancy standard configuration, e.g. a coloured 38 | output of grep or a colored command prompt, run the ``install.sh`` 39 | script from the `files_for_home` directory. 40 | ``` 41 | cd files_for_home 42 | ./install.sh 43 | ``` 44 | Note that this will replace some files in your home directory in case they exist. 45 | Of course backup copies of every replaced file are retained. 46 | 47 | ## Course page 48 | Some further information about the course 49 | can be found on the 50 | [course website](https://michael-herbst.com/teaching/advanced-bash-scripting-2017/). 51 | 52 | The **solutions** to the exercises will also be published on the course website 53 | during or after the course. 54 | 55 | ## Citing 56 | If you use the course notes or any of the script examples in your work, 57 | please this material: 58 | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1045332.svg)](https://doi.org/10.5281/zenodo.1038525) 59 | -------------------------------------------------------------------------------- /bash_course.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mfherbst/bash-course/79a6c59392f29a644fbc536438f6621bc79db86c/bash_course.pdf -------------------------------------------------------------------------------- /files_for_home/.bashrc: -------------------------------------------------------------------------------- 1 | # ~/.bashrc: executed by bash(1) for non-login shells. 2 | # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 3 | # for examples 4 | 5 | case $- in 6 | *i*) : ;; # continue 7 | *) return;; 8 | esac 9 | 10 | ################################ 11 | 12 | for script in $HOME/.bashrc.d/*; do 13 | # skip unreadable files and backup files 14 | [ ! -f "$script" ] && continue 15 | [ ! -r "$script" ] && continue 16 | basename "$script" | egrep -q "^#.*#$|~$|\.(bak|orig|rej|swp|dpkg.*)$" && continue 17 | 18 | . $script 19 | done 20 | -------------------------------------------------------------------------------- /files_for_home/.bashrc.d/00-main: -------------------------------------------------------------------------------- 1 | # ~/.bashrc: executed by bash(1) for non-login shells. 2 | # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 3 | # for examples 4 | 5 | is_interactive_shell() { 6 | case $- in 7 | *i*) return 0;; 8 | *) return 1;; 9 | esac 10 | } 11 | 12 | # Ignore duplicate lines and space lines: 13 | export HISTCONTROL=ignoreboth 14 | 15 | # append to the history file, don't overwrite it 16 | shopt -s histappend 17 | 18 | # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) 19 | export HISTSIZE=2000 20 | 21 | # check the window size after each command and, if necessary, 22 | # update the values of LINES and COLUMNS. 23 | shopt -s checkwinsize 24 | 25 | # make less more friendly for non-text input files, see lesspipe(1) 26 | [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" 27 | 28 | # set variable identifying the chroot you work in (used in the prompt below) 29 | if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then 30 | debian_chroot=$(cat /etc/debian_chroot) 31 | fi 32 | 33 | if [ "$BASH" == "/bin/bash" ]; then 34 | # Set vi editing mode: 35 | set -o vi 36 | fi 37 | 38 | #################################### 39 | # A few exported variables: 40 | export EDITOR="vim" 41 | -------------------------------------------------------------------------------- /files_for_home/.bashrc.d/05-colorprompt: -------------------------------------------------------------------------------- 1 | # Separator to use before prompt: 2 | SEP="$" 3 | [ "$USER" == "root" ] && SEP="#" 4 | 5 | # Use color if terminal has the capability 6 | if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then 7 | # We have color support; assume it's compliant with Ecma-48 8 | # (ISO/IEC-6429). (Lack of such support is extremely rare, and such 9 | # a case would tend to support setf rather than setaf.) 10 | 11 | UCOL="\[\033[0;00m\]" #white 12 | if [ "$USER" == "root" ]; then 13 | UCOL="\[\033[0;31m\]" #red 14 | fi 15 | 16 | #HCOL="\[\033[0;36m\]" #dark cyan 17 | HCOL="\[\033[0;33m\]" #dark yellow 18 | 19 | PCOL="\[\033[1;34m\]" 20 | WHITE="\[\033[0;00m\]" 21 | PS1="${debian_chroot:+($debian_chroot)}$UCOL\u$WHITE@$HCOL\h$WHITE:$PCOL\W$WHITE$SEP " 22 | 23 | unset UCOL HCOL PCOL WHITE 24 | else 25 | PS1="${debian_chroot:+($debian_chroot)}\u@\h:\W$SEP " 26 | fi 27 | unset SEP 28 | 29 | # If this is an xterm set the title to user@host:dir 30 | case "$TERM" in 31 | xterm*|rxvt*) 32 | PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \W\a\]$PS1" 33 | ;; 34 | *) 35 | ;; 36 | esac 37 | 38 | # Enable color support of ls 39 | if [ -x /usr/bin/dircolors ]; then 40 | eval "`dircolors -b`" 41 | fi 42 | 43 | if [ "$BASH" == "/bin/bash" ]; then 44 | # If bash promt the return code if non-zero 45 | promt_extra() { 46 | local RET=$? 47 | if [ "$RET" != "0" ]; then 48 | echo -e "rc: \033[0;32m$RET\033[0;00m" 49 | fi 50 | } 51 | PROMPT_COMMAND='promt_extra' 52 | fi 53 | -------------------------------------------------------------------------------- /files_for_home/.bashrc.d/10-completion: -------------------------------------------------------------------------------- 1 | # completion & aliases: 2 | if ! shopt -oq posix; then 3 | if [ -f /usr/share/bash-completion/bash_completion ]; then 4 | . /usr/share/bash-completion/bash_completion 5 | elif [ -f /etc/bash_completion ]; then 6 | . /etc/bash_completion 7 | fi 8 | fi 9 | -------------------------------------------------------------------------------- /files_for_home/.bashrc.d/15-terminals: -------------------------------------------------------------------------------- 1 | # Terminal specific hacks: 2 | 3 | # Gnome-terminal & VTE: 4 | if [ "${VTE_VERSION:-0}" -ge 3405 ] \ 5 | && gnome-terminal --version | awk '{split($2,a,"."); if (a[1] >= 3 && a[2] >= 7) exit 0; exit 1}'; then 6 | # Workaround for new tab in gnome terminal to open same working direcory 7 | 8 | # sourcing either of the below changes the PROMPT_COMMAND 9 | # so we store an original here: 10 | PROMPT_ORIG=$PROMPT_COMMAND 11 | 12 | if [ -r /etc/profile.d/vte-2.91.sh ]; then 13 | . /etc/profile.d/vte-2.91.sh 14 | PROMPT_COMMAND="$PROMPT_ORIG; $PROMPT_COMMAND" 15 | elif [ -r /etc/profile.d/vte.sh ]; then 16 | . /etc/profile.d/vte.sh 17 | PROMPT_COMMAND="$PROMPT_ORIG; $PROMPT_COMMAND" 18 | else 19 | echo "Could not load vte" 20 | fi 21 | unset PROMPT_ORIG 22 | fi 23 | -------------------------------------------------------------------------------- /files_for_home/.bashrc.d/20-basicAliases: -------------------------------------------------------------------------------- 1 | # source bash_aliases from home folder 2 | if [ -f ~/.bash_aliases ]; then 3 | . ~/.bash_aliases 4 | fi 5 | 6 | # ls, cd, rm, ... Unix basics 7 | GREP_OPTIONS='--color=auto' 8 | alias grep='grep $GREP_OPTIONS' 9 | alias fgrep='fgrep $GREP_OPTIONS' 10 | alias egrep='egrep $GREP_OPTIONS' 11 | alias zgrep='zgrep $GREP_OPTIONS' 12 | alias bzgrep='bzgrep $GREP_OPTIONS' 13 | alias xzgrep='xzgrep $GREP_OPTIONS' 14 | unset GREP_OPTIONS 15 | 16 | alias ls='ls -vF --color=auto' 17 | alias ll='ls -al' 18 | 19 | alias mv='mv -i' 20 | alias cp='cp -i' 21 | alias rm='rm -I' 22 | if [ "$USER" == "root" ];then 23 | alias rm='rm -i' 24 | fi 25 | 26 | # correct common typos 27 | alias vmi="vim" 28 | alias sl='ls' 29 | 30 | # cd aliases 31 | alias cd..='cd ..' 32 | alias ..='cd ..' 33 | 34 | function cl() { 35 | cd $1 36 | shift 37 | ls "$@" 38 | } 39 | 40 | function mkcd() { 41 | mkdir "$1" 42 | cd "$1" 43 | } 44 | -------------------------------------------------------------------------------- /files_for_home/.profile: -------------------------------------------------------------------------------- 1 | # if running bash 2 | if [ -n "$BASH_VERSION" ]; then 3 | # include .bashrc if it exists 4 | if [ -f "$HOME/.bashrc" ]; then 5 | . "$HOME/.bashrc" 6 | fi 7 | fi 8 | -------------------------------------------------------------------------------- /files_for_home/.screenrc: -------------------------------------------------------------------------------- 1 | defscrollback 10000 2 | caption always "%{=rKd}%{+b d}%n %{+b b}%H%{+b d} %l %{+b b}%?%E[+]%?%{+b d}%=%?%u @%? %{+b R}%t %{+b d}%c" 3 | hardstatus alwayslastline "%-Lw%{= Wk}%50>%n*%f %t%{-}%+Lw%<" 4 | -------------------------------------------------------------------------------- /files_for_home/.toprc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mfherbst/bash-course/79a6c59392f29a644fbc536438f6621bc79db86c/files_for_home/.toprc -------------------------------------------------------------------------------- /files_for_home/.vimrc: -------------------------------------------------------------------------------- 1 | " Use Vim settings, rather then Vi settings (much better!). 2 | " This must be first, because it changes other options as a side effect. 3 | set nocompatible 4 | 5 | " allow backspacing over everything in insert mode 6 | set backspace=indent,eol,start 7 | 8 | set backup " keep a backup file 9 | set history=100 " keep 100 lines of command line history 10 | set ruler " show the cursor position all the time 11 | set showcmd " display incomplete commands 12 | set incsearch " do incremental searching 13 | set number " show line numbers 14 | set relativenumber " show relative line numbers 15 | 16 | " Don't use Ex mode, use Q for formatting 17 | map Q gq 18 | 19 | " CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, 20 | " so that you can undo CTRL-U after inserting a line break. 21 | inoremap u 22 | 23 | "enable plugins 24 | set nocp 25 | filetype plugin on 26 | 27 | " Enable file type detection. 28 | " Use the default filetype settings, so that mail gets 'tw' set to 72, 29 | " 'cindent' is on in C files, etc. 30 | " Also load indent files, to automatically do language-dependent indenting. 31 | filetype plugin indent on 32 | 33 | " When editing a file, always jump to the last known cursor position. 34 | " Don't do it when the position is invalid or when inside an event handler 35 | " (happens when dropping a file on gvim). 36 | " Also don't do it when the mark is in the first line, that is the default 37 | " position when opening a file. 38 | autocmd BufReadPost * 39 | \ if line("'\"") > 1 && line("'\"") <= line("$") | 40 | \ exe "normal! g`\"" | 41 | \ endif 42 | 43 | " Switch on syntax and search highlighting 44 | syntax on 45 | set hlsearch 46 | -------------------------------------------------------------------------------- /files_for_home/README: -------------------------------------------------------------------------------- 1 | These files are recommended settings for the course. 2 | You should copy them to your home directory by running 3 | ./install.sh 4 | 5 | in case you created a .bashrc or .profile file, they 6 | will be moved to .bashrc.old and .profile.old 7 | -------------------------------------------------------------------------------- /files_for_home/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # install new files 4 | for file in .bashrc .bashrc.d .profile .vimrc .screenrc .toprc; do 5 | if [ ! -f "$file" ]; then 6 | echo "Please run script directly from the directory using ./$(basename "$0")." >&2 7 | exit 1 8 | fi 9 | 10 | # the target file: 11 | TFILE="$HOME/$file" 12 | 13 | # if target file exists move it to .old: 14 | [ -f "$TFILE" ] && mv "$TFILE" "$TFILE.old" 15 | 16 | # copy new file: 17 | cp -a "$file" "$TFILE" 18 | done 19 | 20 | -------------------------------------------------------------------------------- /resources/Project Gutenberg selection/Dracula.txt: -------------------------------------------------------------------------------- 1 | ../gutenberg/pg345.txt -------------------------------------------------------------------------------- /resources/Project Gutenberg selection/The Count of Monte Cristo.txt: -------------------------------------------------------------------------------- 1 | ../gutenberg/pg1184.txt -------------------------------------------------------------------------------- /resources/Project Gutenberg selection/The Iliad.txt: -------------------------------------------------------------------------------- 1 | ../gutenberg/pg6130.txt -------------------------------------------------------------------------------- /resources/Project Gutenberg selection/The Yellow Wallpaper.txt: -------------------------------------------------------------------------------- 1 | ../gutenberg/pg1952.txt -------------------------------------------------------------------------------- /resources/charcount.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [[ "$1" =~ ("-h"|"--help") ]]; then 4 | echo Script to count number of characters excluding any comments, empty lines or leading/trailing whitespace 5 | exit 0 6 | fi 7 | 8 | FILE=$1 9 | if [ ! -f "$FILE" ]; then 10 | echo "File $FILE not found" >&2 11 | exit 1 12 | fi 13 | 14 | < "$FILE" sed "s/#[^\"']*$//g;s/^[[:space:]]*//g;s/[[:space:]]$//g;/^$/d" | wc -m 15 | -------------------------------------------------------------------------------- /resources/chem_output/qchem.out: -------------------------------------------------------------------------------- 1 | Welcome to Q-Chem 2 | 3 | 4 | Q-Chem 4.3, Q-Chem, Inc., Pleasanton, CA (2015) 5 | 6 | Y. Shao, Z. Gan, E. Epifanovsky, A. T. B. Gilbert, M. Wormit, 7 | J. Kussmann, A. W. Lange, A. Behn, J. Deng, X. Feng, D. Ghosh, 8 | M. Goldey, P. R. Horn, L. D. Jacobson, I. Kaliman, R. Z. Khaliullin, 9 | T. Kus, A. Landau, J. Liu, E. I. Proynov, Y. M. Rhee, R. M. Richard, 10 | M. A. Rohrdanz, R. P. Steele, E. J. Sundstrom, H. L. Woodcock III, 11 | P. M. Zimmerman, D. Zuev, B. Albrecht, E. Alguire, B. Austin, 12 | S. A. Baeppler, G. J. O. Beran, Y. A. Bernard, E. Berquist, 13 | K. Brandhorst, K. B. Bravaya, S. T. Brown, D. Casanova, C.-M. Chang, 14 | Y. Chen, S. H. Chien, K. D. Closser, D. L. Crittenden, M. Diedenhofen, 15 | R. A. DiStasio Jr., H. Do, A. D. Dutoi, R. G. Edgar, P.-T. Fang, 16 | S. Fatehi, Q. Feng, L. Fusti-Molnar, A. Ghysels, 17 | A. Golubeva-Zadorozhnaya, J. Gomes, A. Gunina, M. W. D. Hanson-Heine, 18 | P. H. P. Harbach, A. W. Hauser, E. G. Hohenstein, Z. C. Holden, K. Hui, 19 | T.-C. Jagau, H. Ji, B. Kaduk, K. Khistyaev, Jaehoon Kim, Jihan Kim, 20 | R. A. King, P. Klunzinger, D. Kosenkov, T. Kowalczyk, C. M. Krauter, 21 | K. U. Lao, A. Laurent, K. V. Lawler, S. Lehtola, S. V. Levchenko, 22 | C. Y. Lin, Y.-S. Lin, F. Liu, E. Livshits, R. C. Lochan, A. Luenser, 23 | P. Manohar, S. F. Manzer, S.-P. Mao, N. Mardirossian, A. V. Marenich, 24 | L. A. Martinez-Martinez, S. A. Maurer, N. J. Mayhall, K. Nanda, 25 | C. M. Oana, R. Olivares-Amaya, D. P. O'Neill, J. A. Parkhill, 26 | T. M. Perrine, R. Peverati, P. A. Pieniazek, F. Plasser, A. Prociuk, 27 | D. R. Rehn, E. Rosta, N. J. Russ, N. Sergueev, S. M. Sharada, 28 | S. Sharma, D. W. Small, A. Sodt, T. Stauch, T. Stein, D. Stuck, 29 | Y.-C. Su, A. J. W. Thom, T. Tsuchimochi, L. Vogt, O. Vydrov, T. Wang, 30 | M. A. Watson, J. Wenzel, A. White, C. F. Williams, V. Vanovschi, 31 | S. Yeganeh, S. R. Yost, Z.-Q. You, I. Y. Zhang, X. Zhang, Y. Zhao, 32 | B. R. Brooks, G. K. L. Chan, D. M. Chipman, C. J. Cramer, 33 | W. A. Goddard III, M. S. Gordon, W. J. Hehre, A. Klamt, 34 | H. F. Schaefer III, M. W. Schmidt, C. D. Sherrill, D. G. Truhlar, 35 | A. Warshel, X. Xu, A. Aspuru-Guzik, R. Baer, A. T. Bell, N. A. Besley, 36 | J.-D. Chai, A. Dreuw, B. D. Dunietz, T. R. Furlani, S. R. Gwaltney, 37 | C.-P. Hsu, Y. Jung, J. Kong, D. S. Lambrecht, W. Liang, C. Ochsenfeld, 38 | V. A. Rassolov, L. V. Slipchenko, J. E. Subotnik, T. Van Voorhis, 39 | J. M. Herbert, A. I. Krylov, P. M. W. Gill, M. Head-Gordon 40 | 41 | Contributors to earlier versions of Q-Chem not listed above: 42 | R. D. Adamson, J. Baker, E. F. C. Byrd, A. K. Chakraborty, C.-L. Cheng, 43 | H. Dachsel, R. J. Doerksen, G. Hawkins, A. Heyden, S. Hirata, 44 | G. Kedziora, F. J. Keil, C. Kelley, P. P. Korambath, W. Kurlancheek, 45 | A. M. Lee, M. S. Lee, D. Liotard, I. Lotan, P. E. Maslen, N. Nair, 46 | D. Neuhauser, R. Olson, B. Peters, J. Ritchie, N. E. Schultz, 47 | N. Shenvi, A. C. Simmonett, K. S. Thanthiriwatte, Q. Wu, W. Zhang 48 | 49 | Please cite Q-Chem as follows: 50 | Y. Shao et al., Mol. Phys. 113, 184-215 (2014) 51 | DOI: 10.1080/00268976.2014.952696 52 | 53 | Q-Chem 4.3.0 for Intel X86 EM64T Linux 54 | 55 | Parts of Q-Chem use Armadillo 4.550.3 (Singapore Sling Deluxe). 56 | http://arma.sourceforge.net/ 57 | 58 | Q-Chem begins on Tue Jun 23 16:09:46 2015 59 | 60 | 61 | Checking the input file for inconsistencies... ...done. 62 | 63 | -------------------------------------------------------------- 64 | User input: 65 | -------------------------------------------------------------- 66 | $molecule 67 | 0 1 68 | I 69 | C 1 2.165340 70 | F 2 1.333325 1 111.207119 71 | F 2 1.333325 1 111.207119 3 120.149655 0 72 | F 2 1.333779 1 110.982757 3 -119.925172 0 73 | N 1 2.0 2 179.936173 3 119.925172 0 74 | C 6 1.330504 1 120.904576 2 -0.000000 0 75 | H 7 1.085274 6 116.170594 1 -0.000000 0 76 | C 6 1.330513 1 120.853593 2 -180.000000 0 77 | H 9 1.085265 6 116.169648 1 -0.000000 0 78 | C 9 1.386047 6 122.991772 1 -180.000000 0 79 | H 11 1.082308 9 120.153884 6 -180.000000 0 80 | C 11 1.386006 9 118.486919 6 -0.000000 0 81 | H 13 1.083393 11 120.598104 9 -180.000000 0 82 | C 13 1.386004 11 118.800624 9 -0.000000 0 83 | H 15 1.082304 13 121.357742 11 -180.000000 0 84 | $end 85 | 86 | $rem 87 | basis 6-311G** 88 | method ADC(2) 89 | ee_singlets 5 90 | cc_symmetry true 91 | mem_static 5000 92 | mem_total 220000 93 | threads 12 94 | $end 95 | 96 | 97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------- 102 | Atom 4: ( 3.1042673118, -0.6200860488, -1.0773069433) 103 | ->( 3.1042673127, -0.6200860247, -1.0773069530) 104 | Atom 5: ( 3.0987064313, 1.2453543146, -0.0000000051) 105 | ->( 3.0987064313, 1.2453543146, 0.0000000000) 106 | Atom 8: ( -1.6357959017, 2.0527547625, -0.0000000050) 107 | ->( -1.6357959017, 2.0527547625, 0.0000000000) 108 | Atom 9: ( -2.2267716451, -1.1416434072, 0.0000000030) 109 | ->( -2.2267716451, -1.1416434072, 0.0000000000) 110 | Atom 10: ( -1.6366616057, -2.0524508850, 0.0000000049) 111 | ->( -1.6366616057, -2.0524508850, 0.0000000000) 112 | Atom 11: ( -3.6118872993, -1.1924460722, 0.0000000037) 113 | ->( -3.6118872993, -1.1924460722, 0.0000000000) 114 | Atom 12: ( -4.1208898190, -2.1475937266, 0.0000000062) 115 | ->( -4.1208898190, -2.1475937266, 0.0000000000) 116 | Atom 16: ( -4.1199952821, 2.1488956782, -0.0000000042) 117 | ->( -4.1199952821, 2.1488956782, 0.0000000000) 118 | ---------------------------------------------------------------- 119 | Standard Nuclear Orientation (Angstroms) 120 | I Atom X Y Z 121 | ---------------------------------------------------------------- 122 | 1 I 0.4563267579 -0.0011867616 -0.0000000010 123 | 2 C 2.6216665319 -0.0001975130 -0.0000000019 124 | 3 F 3.1042673127 -0.6200860247 1.0773069530 125 | 4 F 3.1042673127 -0.6200860247 -1.0773069530 126 | 5 F 3.0987064313 1.2453543146 0.0000000000 127 | 6 N -1.5436728103 0.0001275089 -0.0000000001 128 | 7 C -2.2262823422 1.1421805379 -0.0000000026 129 | 8 H -1.6357959017 2.0527547625 0.0000000000 130 | 9 C -2.2267716451 -1.1416434072 0.0000000000 131 | 10 H -1.6366616057 -2.0524508850 0.0000000000 132 | 11 C -3.6118872993 -1.1924460722 0.0000000000 133 | 12 H -4.1208898190 -2.1475937266 0.0000000000 134 | 13 C -4.3171603628 0.0007020904 0.0000000011 135 | 14 H -5.4005533441 0.0009036027 0.0000000016 136 | 15 C -3.6113785568 1.1935470637 -0.0000000021 137 | 16 H -4.1199952821 2.1488956782 0.0000000000 138 | ---------------------------------------------------------------- 139 | Molecular Point Group Cs NOp = 2 140 | Largest Abelian Subgroup Cs NOp = 2 141 | Nuclear Repulsion Energy = 1153.8995781613 hartrees 142 | There are 64 alpha and 64 beta electrons 143 | Requested basis set is 6-311G(d,p) 144 | There are 94 shells and 272 basis functions 145 | 146 | Total QAlloc Memory Limit 220000 MB 147 | Mega-Array Size 4888 MB 148 | MEM_STATIC part 5000 MB 149 | A cutoff of 1.0D-11 yielded 3014 shell pairs 150 | There are 25759 function pairs ( 28587 Cartesian) 151 | 152 | ------------------------------------------------------- 153 | OpenMP Integral Computing Module 154 | Release: version 1.0, May 2013, Q-Chem Inc. Pittsburgh 155 | ------------------------------------------------------- 156 | Integral Job Info: 157 | Integral job number is 11 158 | Integral operator is 1 159 | short-range coefficients -999999 160 | long-range coefficients -999999 161 | Omega coefficients 0 162 | if combine SR and LR in K -999999 163 | Integral screening is 0 164 | Integral computing path is 2 165 | max size of driver memory is 800000 166 | size of driver memory is 593474 167 | size of scratch memory is 11760008 168 | max col of scratch BK array 1296 169 | max len of scratch array in speh3 155 170 | max len of scratch index in speh4 18 171 | max int batch size is 520 172 | min int batch size is 52 173 | fixed nKL is 52 174 | max L of basis functions is 2 175 | order of int derivative is 0 176 | number of shells is 94 177 | number of basis is 287 178 | number of cartesian basis is 287 179 | number of contracted shell pairs 3014 180 | number of primitive shell pairs 7399 181 | maxK2 (contraction) of shell pair 36 182 | max number of K2 of shell pair 1 183 | max number of CS2 of shell pair 329 184 | max number of PS2 of shell pair 744 185 | mem total for path MDJ 57400 186 | ------------------------------------------------------- 187 | Smallest overlap matrix eigenvalue = 4.73E-04 188 | 189 | Scale SEOQF with 1.000000e-02/1.000000e-01/1.000000e+00 190 | 191 | Standard Electronic Orientation quadrupole field applied 192 | Nucleus-field energy = -0.0000000147 hartrees 193 | Guess from superposition of atomic densities 194 | Warning: Energy on first SCF cycle will be non-variational 195 | A restricted Hartree-Fock SCF calculation will be 196 | performed using Pulay DIIS extrapolation 197 | SCF converges when DIIS error is below 1.0E-08 198 | using 12 threads for integral computing 199 | --------------------------------------- 200 | Cycle Energy DIIS Error 201 | --------------------------------------- 202 | 1 -7503.6454640144 4.34E-02 203 | 2 -7499.5523652773 4.50E-03 204 | 3 -7499.7045377810 2.50E-03 205 | 4 -7499.7422464944 4.68E-04 206 | 5 -7499.7451012396 1.14E-04 207 | 6 -7499.7452454445 3.60E-05 208 | 7 -7499.7452617969 1.71E-05 209 | 8 -7499.7452651577 4.31E-06 210 | 9 -7499.7452655550 1.56E-06 211 | 10 -7499.7452656533 8.17E-07 212 | 11 -7499.7452656821 3.94E-07 213 | 12 -7499.7452656893 1.00E-07 214 | 13 -7499.7452656901 3.46E-08 215 | 14 -7499.7452656908 1.10E-08 216 | 15 -7499.7452656920 3.36E-09 Convergence criterion met 217 | --------------------------------------- 218 | SCF time: CPU 150.44 s wall 14.39 s 219 | SCF energy in the final basis set = -7499.7452656920 220 | Total energy in the final basis set = -7499.7452656920 221 | ================================================================================ 222 | | | 223 | | A D C M A N | 224 | | | 225 | ------------------------------------------------------------------------------ 226 | | | 227 | | Components: | 228 | | | 229 | | - libvmm - 1.2-release | 230 | | Authors: | 231 | | Evgeny Epifanovsky, Ilya Kaliman | 232 | | | 233 | | - libtensor - 2.4-qchem43 | 234 | | Authors: | 235 | | Evgeny Epifanovsky, Michael Wormit, Dmitry Zuev, Sam Manzer | 236 | | | 237 | | - libwfa - 1.1-beta | 238 | | Authors: | 239 | | Felix Plasser, Stefanie Baeppler, Benjamin Thomitzni, Michael Wormit | 240 | | | 241 | | - libadc - 1.0-beta | 242 | | Authors: | 243 | | Michael Wormit, Philipp H. P. Harbach, Caroline Krauter, Dirk Rehn, | 244 | | Matthias Schneider, Jan Wenzel | 245 | | | 246 | | - adcman - 2.4-beta | 247 | | Authors: | 248 | | Michael Wormit, Philipp H. P. Harbach, Caroline Krauter, Dirk Rehn, | 249 | | Jan Wenzel, Andreas Dreuw | 250 | | | 251 | | Authors of earlier versions of ADCMAN: | 252 | | Andreas Dreuw, Jan Hendrik Starcke, Dirk Rehn, Michael Wormit | 253 | | | 254 | ================================================================================ 255 | 256 | 257 | Alpha MOs, Restricted 258 | -- Occupied -- 259 | ******* -180.84 -169.65 -169.65 -169.65 -37.90 -33.09 -33.08 260 | 1 A' 2 A' 3 A' 1 A" 4 A' 5 A' 6 A' 2 A" 261 | -33.082 -26.281 -26.281 -26.281 -24.274 -24.270 -24.270 -24.264 262 | 7 A' 8 A' 3 A" 9 A' 10 A' 4 A" 11 A' 12 A' 263 | -24.264 -15.641 -11.425 -11.332 -11.332 -11.309 -11.289 -11.288 264 | 5 A" 13 A' 14 A' 15 A' 16 A' 17 A' 18 A' 19 A' 265 | -7.219 -5.457 -5.439 -5.439 -2.385 -2.373 -2.373 -2.354 266 | 20 A' 21 A' 22 A' 6 A" 23 A' 24 A' 7 A" 25 A' 267 | -2.354 -1.680 -1.584 -1.584 -1.351 -1.154 -1.094 -0.944 268 | 8 A" 26 A' 9 A" 27 A' 28 A' 29 A' 30 A' 31 A' 269 | -0.923 -0.920 -0.862 -0.790 -0.771 -0.771 -0.733 -0.726 270 | 32 A' 33 A' 34 A' 35 A' 10 A" 36 A' 37 A' 38 A' 271 | -0.699 -0.659 -0.659 -0.652 -0.629 -0.622 -0.613 -0.612 272 | 39 A' 11 A" 40 A' 41 A' 42 A' 12 A" 43 A' 13 A" 273 | -0.595 -0.573 -0.553 -0.462 -0.398 -0.367 -0.349 -0.343 274 | 14 A" 44 A' 45 A' 15 A" 16 A" 46 A' 17 A" 47 A' 275 | -- Virtual -- 276 | 0.049 0.080 0.122 0.152 0.166 0.202 0.203 0.233 277 | 18 A" 19 A" 48 A' 49 A' 50 A' 51 A' 52 A' 53 A' 278 | 0.270 0.316 0.339 0.341 0.361 0.371 0.372 0.392 279 | 20 A" 54 A' 21 A" 55 A' 56 A' 22 A" 57 A' 58 A' 280 | 0.396 0.422 0.435 0.466 0.486 0.498 0.520 0.522 281 | 59 A' 60 A' 61 A' 62 A' 63 A' 64 A' 65 A' 66 A' 282 | 0.525 0.550 0.565 0.577 0.589 0.595 0.601 0.656 283 | 23 A" 24 A" 67 A' 68 A' 69 A' 25 A" 26 A" 70 A' 284 | 0.660 0.663 0.690 0.696 0.737 0.739 0.745 0.751 285 | 71 A' 27 A" 72 A' 28 A" 73 A' 29 A" 74 A' 75 A' 286 | 0.773 0.781 0.795 0.814 0.826 0.868 0.876 0.899 287 | 76 A' 30 A" 77 A' 78 A' 79 A' 80 A' 81 A' 82 A' 288 | 0.977 0.991 0.993 1.013 1.042 1.051 1.079 1.143 289 | 83 A' 31 A" 84 A' 85 A' 86 A' 87 A' 88 A' 32 A" 290 | 1.157 1.171 1.181 1.183 1.203 1.215 1.236 1.264 291 | 89 A' 90 A' 33 A" 91 A' 92 A' 34 A" 93 A' 35 A" 292 | 1.275 1.307 1.314 1.348 1.395 1.445 1.466 1.471 293 | 36 A" 37 A" 94 A' 95 A' 38 A" 39 A" 40 A" 96 A' 294 | 1.498 1.540 1.567 1.585 1.605 1.624 1.657 1.668 295 | 97 A' 41 A" 98 A' 99 A' 100 A' 42 A" 101 A' 43 A" 296 | 1.672 1.692 1.717 1.745 1.764 1.794 1.816 1.845 297 | 102 A' 103 A' 104 A' 105 A' 44 A" 106 A' 45 A" 107 A' 298 | 1.845 1.916 1.930 1.951 1.958 2.005 2.013 2.013 299 | 108 A' 109 A' 46 A" 110 A' 111 A' 47 A" 48 A" 112 A' 300 | 2.040 2.049 2.063 2.109 2.117 2.144 2.158 2.184 301 | 49 A" 113 A' 114 A' 50 A" 115 A' 116 A' 117 A' 51 A" 302 | 2.211 2.300 2.315 2.330 2.342 2.431 2.432 2.510 303 | 118 A' 119 A' 52 A" 120 A' 53 A" 121 A' 54 A" 122 A' 304 | 2.562 2.637 2.658 2.658 2.725 2.829 2.840 2.874 305 | 123 A' 124 A' 125 A' 55 A" 126 A' 127 A' 56 A" 128 A' 306 | 2.879 2.884 2.902 2.941 2.943 3.020 3.053 3.089 307 | 129 A' 130 A' 131 A' 57 A" 132 A' 133 A' 134 A' 58 A" 308 | 3.100 3.152 3.189 3.248 3.260 3.269 3.276 3.282 309 | 59 A" 135 A' 60 A" 136 A' 137 A' 138 A' 61 A" 139 A' 310 | 3.327 3.564 3.704 3.792 3.831 3.927 3.992 4.153 311 | 62 A" 140 A' 141 A' 142 A' 143 A' 144 A' 145 A' 146 A' 312 | 4.193 4.224 4.224 4.228 4.235 4.238 4.238 4.271 313 | 63 A" 64 A" 147 A' 65 A" 148 A' 66 A" 149 A' 67 A" 314 | 4.343 4.343 4.345 4.386 4.406 4.519 4.544 4.632 315 | 68 A" 150 A' 151 A' 152 A' 153 A' 69 A" 154 A' 155 A' 316 | 4.673 4.686 4.696 4.729 4.751 4.805 4.832 4.839 317 | 70 A" 156 A' 71 A" 157 A' 158 A' 159 A' 160 A' 161 A' 318 | 5.284 5.307 5.308 5.653 6.556 6.592 6.721 6.724 319 | 162 A' 72 A" 163 A' 164 A' 73 A" 165 A' 166 A' 74 A" 320 | 6.729 6.774 6.838 6.839 6.885 6.931 7.303 7.303 321 | 167 A' 75 A" 76 A" 168 A' 169 A' 170 A' 171 A' 77 A" 322 | 24.570 24.731 25.020 25.119 25.215 25.279 28.974 29.560 323 | 172 A' 173 A' 174 A' 175 A' 176 A' 177 A' 178 A' 78 A" 324 | 29.585 29.711 29.911 29.926 29.975 30.015 30.173 36.993 325 | 179 A' 180 A' 79 A" 181 A' 80 A" 182 A' 183 A' 184 A' 326 | 68.726 68.729 68.808 130.621 130.641 130.740 154.3651912.283 327 | 81 A" 185 A' 186 A' 82 A" 187 A' 188 A' 189 A' 190 A' 328 | 329 | Beta MOs, Restricted 330 | -- Occupied -- 331 | ******* -180.84 -169.65 -169.65 -169.65 -37.90 -33.09 -33.08 332 | 1 A' 2 A' 3 A' 1 A" 4 A' 5 A' 6 A' 2 A" 333 | -33.082 -26.281 -26.281 -26.281 -24.274 -24.270 -24.270 -24.264 334 | 7 A' 8 A' 3 A" 9 A' 10 A' 4 A" 11 A' 12 A' 335 | -24.264 -15.641 -11.425 -11.332 -11.332 -11.309 -11.289 -11.288 336 | 5 A" 13 A' 14 A' 15 A' 16 A' 17 A' 18 A' 19 A' 337 | -7.219 -5.457 -5.439 -5.439 -2.385 -2.373 -2.373 -2.354 338 | 20 A' 21 A' 22 A' 6 A" 23 A' 24 A' 7 A" 25 A' 339 | -2.354 -1.680 -1.584 -1.584 -1.351 -1.154 -1.094 -0.944 340 | 8 A" 26 A' 9 A" 27 A' 28 A' 29 A' 30 A' 31 A' 341 | -0.923 -0.920 -0.862 -0.790 -0.771 -0.771 -0.733 -0.726 342 | 32 A' 33 A' 34 A' 35 A' 10 A" 36 A' 37 A' 38 A' 343 | -0.699 -0.659 -0.659 -0.652 -0.629 -0.622 -0.613 -0.612 344 | 39 A' 11 A" 40 A' 41 A' 42 A' 12 A" 43 A' 13 A" 345 | -0.595 -0.573 -0.553 -0.462 -0.398 -0.367 -0.349 -0.343 346 | 14 A" 44 A' 45 A' 15 A" 16 A" 46 A' 17 A" 47 A' 347 | -- Virtual -- 348 | 0.049 0.080 0.122 0.152 0.166 0.202 0.203 0.233 349 | 18 A" 19 A" 48 A' 49 A' 50 A' 51 A' 52 A' 53 A' 350 | 0.270 0.316 0.339 0.341 0.361 0.371 0.372 0.392 351 | 20 A" 54 A' 21 A" 55 A' 56 A' 22 A" 57 A' 58 A' 352 | 0.396 0.422 0.435 0.466 0.486 0.498 0.520 0.522 353 | 59 A' 60 A' 61 A' 62 A' 63 A' 64 A' 65 A' 66 A' 354 | 0.525 0.550 0.565 0.577 0.589 0.595 0.601 0.656 355 | 23 A" 24 A" 67 A' 68 A' 69 A' 25 A" 26 A" 70 A' 356 | 0.660 0.663 0.690 0.696 0.737 0.739 0.745 0.751 357 | 71 A' 27 A" 72 A' 28 A" 73 A' 29 A" 74 A' 75 A' 358 | 0.773 0.781 0.795 0.814 0.826 0.868 0.876 0.899 359 | 76 A' 30 A" 77 A' 78 A' 79 A' 80 A' 81 A' 82 A' 360 | 0.977 0.991 0.993 1.013 1.042 1.051 1.079 1.143 361 | 83 A' 31 A" 84 A' 85 A' 86 A' 87 A' 88 A' 32 A" 362 | 1.157 1.171 1.181 1.183 1.203 1.215 1.236 1.264 363 | 89 A' 90 A' 33 A" 91 A' 92 A' 34 A" 93 A' 35 A" 364 | 1.275 1.307 1.314 1.348 1.395 1.445 1.466 1.471 365 | 36 A" 37 A" 94 A' 95 A' 38 A" 39 A" 40 A" 96 A' 366 | 1.498 1.540 1.567 1.585 1.605 1.624 1.657 1.668 367 | 97 A' 41 A" 98 A' 99 A' 100 A' 42 A" 101 A' 43 A" 368 | 1.672 1.692 1.717 1.745 1.764 1.794 1.816 1.845 369 | 102 A' 103 A' 104 A' 105 A' 44 A" 106 A' 45 A" 107 A' 370 | 1.845 1.916 1.930 1.951 1.958 2.005 2.013 2.013 371 | 108 A' 109 A' 46 A" 110 A' 111 A' 47 A" 48 A" 112 A' 372 | 2.040 2.049 2.063 2.109 2.117 2.144 2.158 2.184 373 | 49 A" 113 A' 114 A' 50 A" 115 A' 116 A' 117 A' 51 A" 374 | 2.211 2.300 2.315 2.330 2.342 2.431 2.432 2.510 375 | 118 A' 119 A' 52 A" 120 A' 53 A" 121 A' 54 A" 122 A' 376 | 2.562 2.637 2.658 2.658 2.725 2.829 2.840 2.874 377 | 123 A' 124 A' 125 A' 55 A" 126 A' 127 A' 56 A" 128 A' 378 | 2.879 2.884 2.902 2.941 2.943 3.020 3.053 3.089 379 | 129 A' 130 A' 131 A' 57 A" 132 A' 133 A' 134 A' 58 A" 380 | 3.100 3.152 3.189 3.248 3.260 3.269 3.276 3.282 381 | 59 A" 135 A' 60 A" 136 A' 137 A' 138 A' 61 A" 139 A' 382 | 3.327 3.564 3.704 3.792 3.831 3.927 3.992 4.153 383 | 62 A" 140 A' 141 A' 142 A' 143 A' 144 A' 145 A' 146 A' 384 | 4.193 4.224 4.224 4.228 4.235 4.238 4.238 4.271 385 | 63 A" 64 A" 147 A' 65 A" 148 A' 66 A" 149 A' 67 A" 386 | 4.343 4.343 4.345 4.386 4.406 4.519 4.544 4.632 387 | 68 A" 150 A' 151 A' 152 A' 153 A' 69 A" 154 A' 155 A' 388 | 4.673 4.686 4.696 4.729 4.751 4.805 4.832 4.839 389 | 70 A" 156 A' 71 A" 157 A' 158 A' 159 A' 160 A' 161 A' 390 | 5.284 5.307 5.308 5.653 6.556 6.592 6.721 6.724 391 | 162 A' 72 A" 163 A' 164 A' 73 A" 165 A' 166 A' 74 A" 392 | 6.729 6.774 6.838 6.839 6.885 6.931 7.303 7.303 393 | 167 A' 75 A" 76 A" 168 A' 169 A' 170 A' 171 A' 77 A" 394 | 24.570 24.731 25.020 25.119 25.215 25.279 28.974 29.560 395 | 172 A' 173 A' 174 A' 175 A' 176 A' 177 A' 178 A' 78 A" 396 | 29.585 29.711 29.911 29.926 29.975 30.015 30.173 36.993 397 | 179 A' 180 A' 79 A" 181 A' 80 A" 182 A' 183 A' 184 A' 398 | 68.726 68.729 68.808 130.621 130.641 130.740 154.3651912.283 399 | 81 A" 185 A' 186 A' 82 A" 187 A' 188 A' 189 A' 190 A' 400 | 401 | 402 | -------------------------------------------------------------------------------- 403 | HF Summary 404 | -------------------------------------------------------------------------------- 405 | Energy: -7499.7452656920 a.u. 406 | Dip. moment [a.u.]: [ 4.239313, 0.002222, -0.000000] 407 | Total dipole [Debye]: 10.775262 408 | [a.u.]: [2642.472525, 312.247588, 141.079358] 409 | Total [a.u.]: 3095.799471 410 | -------------------------------------------------------------------------------- 411 | 412 | -------------------------------------------------------------------------------- 413 | MP(2) Summary 414 | -------------------------------------------------------------------------------- 415 | Energy contribution: -2.5034129912 a.u. 416 | Total energy: -7502.2486786831 a.u. 417 | Dip. moment [a.u.]: [ 3.955471, 0.001500, -0.000000] 418 | Total dipole [Debye]: 10.053806 419 | [a.u.]: [2642.142993, 312.227217, 140.456526] 420 | Total [a.u.]: 3094.826735 421 | -------------------------------------------------------------------------------- 422 | Starting Davidson ... 423 | -------------------------------------------------------------------------------- 424 | It NVec Conv Avg. Norm Max. Norm Conv. states Remark 425 | -------------------------------------------------------------------------------- 426 | 5 0 2.870e-01 7.036e-01 0.3459 n n n n n Guess. 427 | 1 10 0 1.427e-01 5.720e-01 0.1834 n n n n n 428 | 2 15 0 6.122e-02 2.835e-01 0.1745 n n n n n 429 | 3 20 0 2.055e-02 8.669e-02 0.1731 n n n n n 430 | 4 25 0 1.678e-02 8.045e-02 0.1729 n n n n n 431 | 5 10 0 5.936e-03 2.722e-02 0.1728 n n n n n Subspace collapsed. 432 | 6 15 0 1.953e-02 9.706e-02 0.1728 n n n n n 433 | 7 20 0 1.813e-02 9.050e-02 0.1728 n n n n n 434 | 8 25 0 1.919e-02 9.587e-02 0.1728 n n n n n 435 | 9 10 0 1.434e-02 7.168e-02 0.1728 n n n n n Subspace collapsed. 436 | 10 15 0 1.685e-02 8.419e-02 0.1728 n n n n n 437 | 11 20 0 1.164e-02 5.755e-02 0.1728 n n n n n 438 | 12 25 0 8.789e-03 3.828e-02 0.1728 n n n n n 439 | 13 10 0 4.692e-03 2.287e-02 0.1728 n n n n n Subspace collapsed. 440 | 14 15 0 4.918e-03 2.433e-02 0.1728 n n n n n 441 | 15 20 0 2.869e-03 1.422e-02 0.1728 n n n n n 442 | 16 25 0 2.827e-03 1.402e-02 0.1728 n n n n n 443 | 17 10 0 1.504e-03 7.462e-03 0.1728 n n n n n Subspace collapsed. 444 | 18 15 0 1.677e-03 8.324e-03 0.1728 n n n n n 445 | 19 20 2 7.969e-04 3.954e-03 0.1728 y y n n n 446 | 20 25 2 1.014e-03 5.027e-03 0.1728 y y n n n 447 | 21 10 2 3.801e-04 1.885e-03 0.1728 y y n n n Subspace collapsed. 448 | 22 15 2 4.378e-04 2.171e-03 0.1728 y y n n n 449 | 23 20 2 2.464e-04 1.221e-03 0.1728 y y n n n 450 | 24 25 2 2.804e-04 1.389e-03 0.1728 y y n n n 451 | 25 10 2 1.281e-04 6.344e-04 0.1728 y y n n n Subspace collapsed. 452 | 26 15 3 1.517e-04 7.513e-04 0.1728 y y y n n 453 | 27 20 3 7.577e-05 3.751e-04 0.1728 y y y n n 454 | 28 25 3 9.550e-05 4.725e-04 0.1728 y y y n n 455 | 29 10 3 3.641e-05 1.801e-04 0.1728 y y y n n Subspace collapsed. 456 | 30 15 3 4.342e-05 2.148e-04 0.1728 y y y n n 457 | 31 20 3 2.364e-05 1.168e-04 0.1728 y y y n n 458 | 32 25 3 2.728e-05 1.347e-04 0.1728 y y y n n 459 | 33 10 3 1.257e-05 6.211e-05 0.1728 y y y n n Subspace collapsed. 460 | 34 15 3 1.497e-05 7.391e-05 0.1728 y y y n n 461 | 35 20 3 7.407e-06 3.656e-05 0.1728 y y y n n 462 | 36 25 3 9.805e-06 4.836e-05 0.1728 y y y n n 463 | 37 10 3 3.576e-06 1.763e-05 0.1728 y y y n n Subspace collapsed. 464 | 38 15 3 4.746e-06 2.339e-05 0.1728 y y y n n 465 | 39 20 3 2.746e-06 1.353e-05 0.1728 y y y n n 466 | 40 25 3 2.697e-06 1.328e-05 0.1728 y y y n n 467 | 41 10 3 1.555e-06 7.656e-06 0.1728 y y y n n Subspace collapsed. 468 | 42 15 3 1.545e-06 7.603e-06 0.1728 y y y n n 469 | 43 19 4 8.572e-07 4.214e-06 0.1728 y y y n y 470 | 44 19 4 8.572e-07 4.214e-06 0.1728 y y y n y 471 | 45 24 3 1.107e-06 5.439e-06 0.1728 y y y n n 472 | 46 25 3 1.110e-06 5.453e-06 0.1728 y y y n n 473 | 47 8 4 4.677e-07 2.296e-06 0.1728 y y y n y Subspace collapsed. 474 | 48 11 4 4.680e-07 2.297e-06 0.1728 y y y n y 475 | 49 14 4 3.144e-07 1.541e-06 0.1728 y y y n y 476 | 50 17 4 2.624e-07 1.286e-06 0.1728 y y y n y 477 | 51 20 4 2.456e-07 1.202e-06 0.1728 y y y n y 478 | 52 23 5 1.033e-07 5.049e-07 0.1728 y y y y y Converged. 479 | -------------------------------------------------------------------------------- 480 | Davidson Summary: 481 | ------------------------------------------------------------ 482 | State 0: excitation energy = 0.1728 a.u. (converged) 483 | State 1: excitation energy = 0.1838 a.u. (converged) 484 | State 2: excitation energy = 0.2183 a.u. (converged) 485 | State 3: excitation energy = 0.2519 a.u. (converged) 486 | State 4: excitation energy = 0.2547 a.u. (converged) 487 | ------------------------------------------------------------ 488 | 489 | Starting Davidson ... 490 | -------------------------------------------------------------------------------- 491 | It NVec Conv Avg. Norm Max. Norm Conv. states Remark 492 | -------------------------------------------------------------------------------- 493 | 5 0 3.178e-01 7.684e-01 0.3554 n n n n n Guess. 494 | 1 10 0 1.147e-01 4.230e-01 0.1593 n n n n n 495 | 2 15 0 3.053e-02 9.658e-02 0.1357 n n n n n 496 | 3 20 0 1.377e-02 3.877e-02 0.1334 n n n n n 497 | 4 25 0 6.279e-03 2.400e-02 0.1328 n n n n n 498 | 5 10 0 3.027e-03 1.185e-02 0.1328 n n n n n Subspace collapsed. 499 | 6 15 0 2.776e-03 1.227e-02 0.1328 n n n n n 500 | 7 20 0 1.736e-03 8.279e-03 0.1328 n n n n n 501 | 8 25 0 1.121e-03 5.488e-03 0.1328 n n n n n 502 | 9 10 0 6.954e-04 3.431e-03 0.1328 n n n n n Subspace collapsed. 503 | 10 15 0 6.672e-04 3.316e-03 0.1328 n n n n n 504 | 11 20 0 4.067e-04 2.027e-03 0.1328 n n n n n 505 | 12 25 0 2.706e-04 1.351e-03 0.1328 n n n n n 506 | 13 10 0 1.784e-04 8.912e-04 0.1328 n n n n n Subspace collapsed. 507 | 14 15 0 1.655e-04 8.270e-04 0.1328 n n n n n 508 | 15 20 0 1.120e-04 5.597e-04 0.1328 n n n n n 509 | 16 25 1 1.076e-04 5.380e-04 0.1328 n y n n n 510 | 17 10 1 5.912e-05 2.956e-04 0.1328 n y n n n Subspace collapsed. 511 | 18 15 1 7.431e-05 3.715e-04 0.1328 n y n n n 512 | 19 20 3 5.346e-05 2.673e-04 0.1328 y y y n n 513 | 20 25 3 5.527e-05 2.763e-04 0.1328 y y y n n 514 | 21 10 4 3.608e-05 1.804e-04 0.1328 y y y y n Subspace collapsed. 515 | 22 15 4 4.051e-05 2.026e-04 0.1328 y y y y n 516 | 23 20 4 2.498e-05 1.249e-04 0.1328 y y y y n 517 | 24 25 4 3.861e-05 1.930e-04 0.1328 y y y y n 518 | 25 10 4 1.704e-05 8.520e-05 0.1328 y y y y n Subspace collapsed. 519 | 26 15 4 2.737e-05 1.368e-04 0.1328 y y y y n 520 | 27 20 4 1.671e-05 8.355e-05 0.1328 y y y y n 521 | 28 25 4 2.431e-05 1.215e-04 0.1328 y y y y n 522 | 29 10 4 1.300e-05 6.500e-05 0.1328 y y y y n Subspace collapsed. 523 | 30 15 4 1.802e-05 9.010e-05 0.1328 y y y y n 524 | 31 20 4 1.171e-05 5.856e-05 0.1328 y y y y n 525 | 32 25 4 1.803e-05 9.015e-05 0.1328 y y y y n 526 | 33 10 4 8.047e-06 4.023e-05 0.1328 y y y y n Subspace collapsed. 527 | 34 15 4 1.255e-05 6.275e-05 0.1328 y y y y n 528 | 35 20 4 7.718e-06 3.859e-05 0.1328 y y y y n 529 | 36 25 4 1.209e-05 6.046e-05 0.1328 y y y y n 530 | 37 10 4 5.921e-06 2.960e-05 0.1328 y y y y n Subspace collapsed. 531 | 38 11 4 6.205e-06 3.102e-05 0.1328 y y y y n 532 | 39 12 4 5.432e-06 2.716e-05 0.1328 y y y y n 533 | 40 12 4 5.432e-06 2.716e-05 0.1328 y y y y n 534 | 41 17 4 7.774e-06 3.887e-05 0.1328 y y y y n 535 | 42 20 4 7.822e-06 3.911e-05 0.1328 y y y y n 536 | 43 23 4 7.212e-06 3.606e-05 0.1328 y y y y n 537 | 44 25 4 6.819e-06 3.410e-05 0.1328 y y y y n 538 | 45 7 4 5.026e-06 2.513e-05 0.1328 y y y y n Subspace collapsed. 539 | 46 9 4 5.524e-06 2.762e-05 0.1328 y y y y n 540 | 47 11 4 3.748e-06 1.874e-05 0.1328 y y y y n 541 | 48 13 4 3.683e-06 1.841e-05 0.1328 y y y y n 542 | 49 15 4 5.648e-06 2.824e-05 0.1328 y y y y n 543 | 50 17 4 3.308e-06 1.654e-05 0.1328 y y y y n 544 | 51 17 4 3.308e-06 1.654e-05 0.1328 y y y y n 545 | 52 22 4 2.068e-06 1.034e-05 0.1328 y y y y n 546 | 53 23 4 2.512e-06 1.256e-05 0.1328 y y y y n 547 | 54 24 4 1.373e-06 6.865e-06 0.1328 y y y y n 548 | 55 25 4 1.589e-06 7.945e-06 0.1328 y y y y n 549 | 56 6 4 8.111e-07 4.056e-06 0.1328 y y y y n Subspace collapsed. 550 | 57 7 4 1.118e-06 5.588e-06 0.1328 y y y y n 551 | 58 8 4 7.839e-07 3.920e-06 0.1328 y y y y n 552 | 59 9 4 6.502e-07 3.251e-06 0.1328 y y y y n 553 | -------------------------------------------------------------------------------- 554 | Davidson Summary: 555 | ------------------------------------------------------------ 556 | State 0: excitation energy = 0.1328 a.u. (converged) 557 | State 1: excitation energy = 0.1602 a.u. (converged) 558 | State 2: excitation energy = 0.1806 a.u. (converged) 559 | State 3: excitation energy = 0.2106 a.u. (converged) 560 | State 4: excitation energy = 0.2773 a.u. (not converged) 561 | ------------------------------------------------------------ 562 | 563 | 564 | -------------------------------------------------------------------------------- 565 | Excited State Summary 566 | -------------------------------------------------------------------------------- 567 | 568 | Excited state 1 (singlet, A") [converged] 569 | ---------------------------------------------------------------------------- 570 | Term symbol: 1 (1) A" R^2 = 7.77227e-11 571 | 572 | Total energy: -7502.1159223236 a.u. 573 | Excitation energy: 3.612484 eV 574 | 575 | Osc. strength: 0.001105 576 | Trans. dip. moment [a.u.]: [ -0.000000, 0.000000, 0.111758] 577 | [a.u.]: [ -0.000000, 0.000000, -0.000000] 578 | 579 | V1^2 = 0.8861, V2^2 = 0.1139 580 | 581 | Important amplitudes: 582 | occ i occ j vir a vir b v 583 | ------------------------------------------------------------- 584 | 47 (A') A 18 (A") A -0.6540 585 | 45 (A') A 18 (A") A 0.0740 586 | ------------------------------------------------------------- 587 | ---------------------------------------------------------------------------- 588 | 589 | 590 | Excited state 2 (singlet, A") [converged] 591 | ---------------------------------------------------------------------------- 592 | Term symbol: 2 (1) A" R^2 = 7.77061e-11 593 | 594 | Total energy: -7502.0885147568 a.u. 595 | Excitation energy: 4.358282 eV 596 | 597 | Osc. strength: 0.000000 598 | Trans. dip. moment [a.u.]: [ 0.000000, -0.000000, -0.000109] 599 | [a.u.]: [ -0.000000, -0.000000, 0.000000] 600 | 601 | V1^2 = 0.8812, V2^2 = 0.1188 602 | 603 | Important amplitudes: 604 | occ i occ j vir a vir b v 605 | ------------------------------------------------------------- 606 | 47 (A') A 19 (A") A -0.6520 607 | 45 (A') A 19 (A") A 0.0911 608 | ------------------------------------------------------------- 609 | ---------------------------------------------------------------------------- 610 | 611 | 612 | Excited state 3 (singlet, A') [converged] 613 | ---------------------------------------------------------------------------- 614 | Term symbol: 2 (1) A' R^2 = 1.67207e-11 615 | 616 | Total energy: -7502.0758682352 a.u. 617 | Excitation energy: 4.702411 eV 618 | 619 | Osc. strength: 0.172576 620 | Trans. dip. moment [a.u.]: [ -1.223915, 0.000555, -0.000000] 621 | [a.u.]: [ 6.858763, 0.448094, -0.546925] 622 | 623 | V1^2 = 0.9030, V2^2 = 0.0970 624 | 625 | Important amplitudes: 626 | occ i occ j vir a vir b v 627 | ------------------------------------------------------------- 628 | 17 (A") A 18 (A") A 0.6623 629 | 15 (A") A 18 (A") A -0.0537 630 | ------------------------------------------------------------- 631 | ---------------------------------------------------------------------------- 632 | 633 | 634 | Excited state 4 (singlet, A") [converged] 635 | ---------------------------------------------------------------------------- 636 | Term symbol: 3 (1) A" R^2 = 6.95105e-12 637 | 638 | Total energy: -7502.0680333492 a.u. 639 | Excitation energy: 4.915610 eV 640 | 641 | Osc. strength: 0.000000 642 | Trans. dip. moment [a.u.]: [ -0.000000, 0.000000, -0.000112] 643 | [a.u.]: [ -0.000000, 0.000000, -0.000000] 644 | 645 | V1^2 = 0.9034, V2^2 = 0.0966 646 | 647 | Important amplitudes: 648 | occ i occ j vir a vir b v 649 | ------------------------------------------------------------- 650 | 46 (A') A 18 (A") A 0.6660 651 | 46 (A') A 20 (A") A -0.0580 652 | ------------------------------------------------------------- 653 | ---------------------------------------------------------------------------- 654 | 655 | 656 | Excited state 5 (singlet, A') [converged] 657 | ---------------------------------------------------------------------------- 658 | Term symbol: 3 (1) A' R^2 = 6.94714e-12 659 | 660 | Total energy: -7502.0649123586 a.u. 661 | Excitation energy: 5.000536 eV 662 | 663 | Osc. strength: 0.002945 664 | Trans. dip. moment [a.u.]: [ 0.000247, -0.155052, -0.000000] 665 | [a.u.]: [ -0.002538, 0.001015, -0.001590] 666 | 667 | V1^2 = 0.9013, V2^2 = 0.0987 668 | 669 | Important amplitudes: 670 | occ i occ j vir a vir b v 671 | ------------------------------------------------------------- 672 | 17 (A") A 19 (A") A 0.5265 673 | 16 (A") A 18 (A") A 0.3827 674 | ------------------------------------------------------------- 675 | ---------------------------------------------------------------------------- 676 | 677 | 678 | Excited state 6 (singlet, A") [converged] 679 | ---------------------------------------------------------------------------- 680 | Term symbol: 4 (1) A" R^2 = 7.26205e-12 681 | 682 | Total energy: -7502.0380621893 a.u. 683 | Excitation energy: 5.731166 eV 684 | 685 | Osc. strength: 0.000297 686 | Trans. dip. moment [a.u.]: [ -0.000000, -0.000000, 0.045965] 687 | [a.u.]: [ 0.000000, -0.000000, 0.000000] 688 | 689 | V1^2 = 0.9010, V2^2 = 0.0990 690 | 691 | Important amplitudes: 692 | occ i occ j vir a vir b v 693 | ------------------------------------------------------------- 694 | 46 (A') A 19 (A") A -0.6680 695 | 46 (A') A 28 (A") A 0.0431 696 | ------------------------------------------------------------- 697 | ---------------------------------------------------------------------------- 698 | 699 | 700 | Excited state 7 (singlet, A') [converged] 701 | ---------------------------------------------------------------------------- 702 | Term symbol: 4 (1) A' R^2 = 2.71874e-11 703 | 704 | Total energy: -7502.0303850075 a.u. 705 | Excitation energy: 5.940073 eV 706 | 707 | Osc. strength: 0.097975 708 | Trans. dip. moment [a.u.]: [ -0.000837, -0.820507, -0.000000] 709 | [a.u.]: [ 0.008271, 0.002647, -0.004163] 710 | 711 | V1^2 = 0.9087, V2^2 = 0.0913 712 | 713 | Important amplitudes: 714 | occ i occ j vir a vir b v 715 | ------------------------------------------------------------- 716 | 16 (A") A 18 (A") A 0.4779 717 | 17 (A") A 19 (A") A -0.4103 718 | ------------------------------------------------------------- 719 | ---------------------------------------------------------------------------- 720 | 721 | 722 | Excited state 8 (singlet, A') [converged] 723 | ---------------------------------------------------------------------------- 724 | Term symbol: 5 (1) A' R^2 = 5.04889e-07 725 | 726 | Total energy: -7501.9967396172 a.u. 727 | Excitation energy: 6.855611 eV 728 | 729 | Osc. strength: 0.192432 730 | Trans. dip. moment [a.u.]: [ -1.070376, 0.000874, -0.000000] 731 | [a.u.]: [ -0.020160, 2.524495, -0.102471] 732 | 733 | V1^2 = 0.8859, V2^2 = 0.1141 734 | 735 | Important amplitudes: 736 | occ i occ j vir a vir b v 737 | ------------------------------------------------------------- 738 | 47 (A') A 48 (A') A 0.6189 739 | 47 (A') A 50 (A') A -0.1647 740 | ------------------------------------------------------------- 741 | ---------------------------------------------------------------------------- 742 | 743 | 744 | Excited state 9 (singlet, A') [converged] 745 | ---------------------------------------------------------------------------- 746 | Term symbol: 6 (1) A' R^2 = 1.09639e-07 747 | 748 | Total energy: -7501.9939970379 a.u. 749 | Excitation energy: 6.930240 eV 750 | 751 | Osc. strength: 0.053593 752 | Trans. dip. moment [a.u.]: [ 0.561824, -0.000342, -0.000000] 753 | [a.u.]: [ -3.661176, -1.324280, 0.040409] 754 | 755 | V1^2 = 0.9215, V2^2 = 0.0785 756 | 757 | Important amplitudes: 758 | occ i occ j vir a vir b v 759 | ------------------------------------------------------------- 760 | 16 (A") A 19 (A") A -0.5282 761 | 15 (A") A 18 (A") A 0.4034 762 | ------------------------------------------------------------- 763 | ---------------------------------------------------------------------------- 764 | 765 | 766 | Excited state 10 (singlet, A") [not converged] 767 | ---------------------------------------------------------------------------- 768 | Term symbol: 5 (1) A" R^2 = 3.25076e-06 769 | 770 | Total energy: -7501.9713527249 a.u. 771 | Excitation energy: 7.546423 eV 772 | 773 | 774 | V1^2 = 0.9255, V2^2 = 0.0745 775 | 776 | Important amplitudes: 777 | occ i occ j vir a vir b v 778 | ------------------------------------------------------------- 779 | 17 (A") A 48 (A') A -0.5663 780 | 17 (A") A 53 (A') A 0.2371 781 | ------------------------------------------------------------- 782 | ---------------------------------------------------------------------------- 783 | 784 | 785 | -------------------------------------------------------------------------------- 786 | Time of ADC calculation: CPU 115311.52 s wall 11524.24 s 787 | ================================================================================ 788 | Analysis of SCF Wavefunction 789 | 790 | -------------------------------------------------------------- 791 | Orbital Energies (a.u.) and Symmetries 792 | -------------------------------------------------------------- 793 | 794 | Alpha MOs, Restricted 795 | -- Occupied -- 796 | ******* -180.84 -169.65 -169.65 -169.65 -37.90 -33.09 -33.08 797 | 1 A' 2 A' 3 A' 1 A" 4 A' 5 A' 6 A' 2 A" 798 | -33.082 -26.281 -26.281 -26.281 -24.274 -24.270 -24.270 -24.264 799 | 7 A' 8 A' 3 A" 9 A' 10 A' 4 A" 11 A' 12 A' 800 | -24.264 -15.641 -11.425 -11.332 -11.332 -11.309 -11.289 -11.288 801 | 5 A" 13 A' 14 A' 15 A' 16 A' 17 A' 18 A' 19 A' 802 | -7.219 -5.457 -5.439 -5.439 -2.385 -2.373 -2.373 -2.354 803 | 20 A' 21 A' 22 A' 6 A" 23 A' 24 A' 7 A" 25 A' 804 | -2.354 -1.680 -1.584 -1.584 -1.351 -1.154 -1.094 -0.944 805 | 8 A" 26 A' 9 A" 27 A' 28 A' 29 A' 30 A' 31 A' 806 | -0.923 -0.920 -0.862 -0.790 -0.771 -0.771 -0.733 -0.726 807 | 32 A' 33 A' 34 A' 35 A' 10 A" 36 A' 37 A' 38 A' 808 | -0.699 -0.659 -0.659 -0.652 -0.629 -0.622 -0.613 -0.612 809 | 39 A' 11 A" 40 A' 41 A' 42 A' 12 A" 43 A' 13 A" 810 | -0.595 -0.573 -0.553 -0.462 -0.398 -0.367 -0.349 -0.343 811 | 14 A" 44 A' 45 A' 15 A" 16 A" 46 A' 17 A" 47 A' 812 | -- Virtual -- 813 | 0.049 0.080 0.122 0.152 0.166 0.202 0.203 0.233 814 | 18 A" 19 A" 48 A' 49 A' 50 A' 51 A' 52 A' 53 A' 815 | 0.270 0.316 0.339 0.341 0.361 0.371 0.372 0.392 816 | 20 A" 54 A' 21 A" 55 A' 56 A' 22 A" 57 A' 58 A' 817 | 0.396 0.422 0.435 0.466 0.486 0.498 0.520 0.522 818 | 59 A' 60 A' 61 A' 62 A' 63 A' 64 A' 65 A' 66 A' 819 | 0.525 0.550 0.565 0.577 0.589 0.595 0.601 0.656 820 | 23 A" 24 A" 67 A' 68 A' 69 A' 25 A" 26 A" 70 A' 821 | 0.660 0.663 0.690 0.696 0.737 0.739 0.745 0.751 822 | 71 A' 27 A" 72 A' 28 A" 73 A' 29 A" 74 A' 75 A' 823 | 0.773 0.781 0.795 0.814 0.826 0.868 0.876 0.899 824 | 76 A' 30 A" 77 A' 78 A' 79 A' 80 A' 81 A' 82 A' 825 | 0.977 0.991 0.993 1.013 1.042 1.051 1.079 1.143 826 | 83 A' 31 A" 84 A' 85 A' 86 A' 87 A' 88 A' 32 A" 827 | 1.157 1.171 1.181 1.183 1.203 1.215 1.236 1.264 828 | 89 A' 90 A' 33 A" 91 A' 92 A' 34 A" 93 A' 35 A" 829 | 1.275 1.307 1.314 1.348 1.395 1.445 1.466 1.471 830 | 36 A" 37 A" 94 A' 95 A' 38 A" 39 A" 40 A" 96 A' 831 | 1.498 1.540 1.567 1.585 1.605 1.624 1.657 1.668 832 | 97 A' 41 A" 98 A' 99 A' 100 A' 42 A" 101 A' 43 A" 833 | 1.672 1.692 1.717 1.745 1.764 1.794 1.816 1.845 834 | 102 A' 103 A' 104 A' 105 A' 44 A" 106 A' 45 A" 107 A' 835 | 1.845 1.916 1.930 1.951 1.958 2.005 2.013 2.013 836 | 108 A' 109 A' 46 A" 110 A' 111 A' 47 A" 48 A" 112 A' 837 | 2.040 2.049 2.063 2.109 2.117 2.144 2.158 2.184 838 | 49 A" 113 A' 114 A' 50 A" 115 A' 116 A' 117 A' 51 A" 839 | 2.211 2.300 2.315 2.330 2.342 2.431 2.432 2.510 840 | 118 A' 119 A' 52 A" 120 A' 53 A" 121 A' 54 A" 122 A' 841 | 2.562 2.637 2.658 2.658 2.725 2.829 2.840 2.874 842 | 123 A' 124 A' 125 A' 55 A" 126 A' 127 A' 56 A" 128 A' 843 | 2.879 2.884 2.902 2.941 2.943 3.020 3.053 3.089 844 | 129 A' 130 A' 131 A' 57 A" 132 A' 133 A' 134 A' 58 A" 845 | 3.100 3.152 3.189 3.248 3.260 3.269 3.276 3.282 846 | 59 A" 135 A' 60 A" 136 A' 137 A' 138 A' 61 A" 139 A' 847 | 3.327 3.564 3.704 3.792 3.831 3.927 3.992 4.153 848 | 62 A" 140 A' 141 A' 142 A' 143 A' 144 A' 145 A' 146 A' 849 | 4.193 4.224 4.224 4.228 4.235 4.238 4.238 4.271 850 | 63 A" 64 A" 147 A' 65 A" 148 A' 66 A" 149 A' 67 A" 851 | 4.343 4.343 4.345 4.386 4.406 4.519 4.544 4.632 852 | 68 A" 150 A' 151 A' 152 A' 153 A' 69 A" 154 A' 155 A' 853 | 4.673 4.686 4.696 4.729 4.751 4.805 4.832 4.839 854 | 70 A" 156 A' 71 A" 157 A' 158 A' 159 A' 160 A' 161 A' 855 | 5.284 5.307 5.308 5.653 6.556 6.592 6.721 6.724 856 | 162 A' 72 A" 163 A' 164 A' 73 A" 165 A' 166 A' 74 A" 857 | 6.729 6.774 6.838 6.839 6.885 6.931 7.303 7.303 858 | 167 A' 75 A" 76 A" 168 A' 169 A' 170 A' 171 A' 77 A" 859 | 24.570 24.731 25.020 25.119 25.215 25.279 28.974 29.560 860 | 172 A' 173 A' 174 A' 175 A' 176 A' 177 A' 178 A' 78 A" 861 | 29.585 29.711 29.911 29.926 29.975 30.015 30.173 36.993 862 | 179 A' 180 A' 79 A" 181 A' 80 A" 182 A' 183 A' 184 A' 863 | 68.726 68.729 68.808 130.621 130.641 130.740 154.3651912.283 864 | 81 A" 185 A' 186 A' 82 A" 187 A' 188 A' 189 A' 190 A' 865 | 866 | Beta MOs, Restricted 867 | -- Occupied -- 868 | ******* -180.84 -169.65 -169.65 -169.65 -37.90 -33.09 -33.08 869 | 1 A' 2 A' 3 A' 1 A" 4 A' 5 A' 6 A' 2 A" 870 | -33.082 -26.281 -26.281 -26.281 -24.274 -24.270 -24.270 -24.264 871 | 7 A' 8 A' 3 A" 9 A' 10 A' 4 A" 11 A' 12 A' 872 | -24.264 -15.641 -11.425 -11.332 -11.332 -11.309 -11.289 -11.288 873 | 5 A" 13 A' 14 A' 15 A' 16 A' 17 A' 18 A' 19 A' 874 | -7.219 -5.457 -5.439 -5.439 -2.385 -2.373 -2.373 -2.354 875 | 20 A' 21 A' 22 A' 6 A" 23 A' 24 A' 7 A" 25 A' 876 | -2.354 -1.680 -1.584 -1.584 -1.351 -1.154 -1.094 -0.944 877 | 8 A" 26 A' 9 A" 27 A' 28 A' 29 A' 30 A' 31 A' 878 | -0.923 -0.920 -0.862 -0.790 -0.771 -0.771 -0.733 -0.726 879 | 32 A' 33 A' 34 A' 35 A' 10 A" 36 A' 37 A' 38 A' 880 | -0.699 -0.659 -0.659 -0.652 -0.629 -0.622 -0.613 -0.612 881 | 39 A' 11 A" 40 A' 41 A' 42 A' 12 A" 43 A' 13 A" 882 | -0.595 -0.573 -0.553 -0.462 -0.398 -0.367 -0.349 -0.343 883 | 14 A" 44 A' 45 A' 15 A" 16 A" 46 A' 17 A" 47 A' 884 | -- Virtual -- 885 | 0.049 0.080 0.122 0.152 0.166 0.202 0.203 0.233 886 | 18 A" 19 A" 48 A' 49 A' 50 A' 51 A' 52 A' 53 A' 887 | 0.270 0.316 0.339 0.341 0.361 0.371 0.372 0.392 888 | 20 A" 54 A' 21 A" 55 A' 56 A' 22 A" 57 A' 58 A' 889 | 0.396 0.422 0.435 0.466 0.486 0.498 0.520 0.522 890 | 59 A' 60 A' 61 A' 62 A' 63 A' 64 A' 65 A' 66 A' 891 | 0.525 0.550 0.565 0.577 0.589 0.595 0.601 0.656 892 | 23 A" 24 A" 67 A' 68 A' 69 A' 25 A" 26 A" 70 A' 893 | 0.660 0.663 0.690 0.696 0.737 0.739 0.745 0.751 894 | 71 A' 27 A" 72 A' 28 A" 73 A' 29 A" 74 A' 75 A' 895 | 0.773 0.781 0.795 0.814 0.826 0.868 0.876 0.899 896 | 76 A' 30 A" 77 A' 78 A' 79 A' 80 A' 81 A' 82 A' 897 | 0.977 0.991 0.993 1.013 1.042 1.051 1.079 1.143 898 | 83 A' 31 A" 84 A' 85 A' 86 A' 87 A' 88 A' 32 A" 899 | 1.157 1.171 1.181 1.183 1.203 1.215 1.236 1.264 900 | 89 A' 90 A' 33 A" 91 A' 92 A' 34 A" 93 A' 35 A" 901 | 1.275 1.307 1.314 1.348 1.395 1.445 1.466 1.471 902 | 36 A" 37 A" 94 A' 95 A' 38 A" 39 A" 40 A" 96 A' 903 | 1.498 1.540 1.567 1.585 1.605 1.624 1.657 1.668 904 | 97 A' 41 A" 98 A' 99 A' 100 A' 42 A" 101 A' 43 A" 905 | 1.672 1.692 1.717 1.745 1.764 1.794 1.816 1.845 906 | 102 A' 103 A' 104 A' 105 A' 44 A" 106 A' 45 A" 107 A' 907 | 1.845 1.916 1.930 1.951 1.958 2.005 2.013 2.013 908 | 108 A' 109 A' 46 A" 110 A' 111 A' 47 A" 48 A" 112 A' 909 | 2.040 2.049 2.063 2.109 2.117 2.144 2.158 2.184 910 | 49 A" 113 A' 114 A' 50 A" 115 A' 116 A' 117 A' 51 A" 911 | 2.211 2.300 2.315 2.330 2.342 2.431 2.432 2.510 912 | 118 A' 119 A' 52 A" 120 A' 53 A" 121 A' 54 A" 122 A' 913 | 2.562 2.637 2.658 2.658 2.725 2.829 2.840 2.874 914 | 123 A' 124 A' 125 A' 55 A" 126 A' 127 A' 56 A" 128 A' 915 | 2.879 2.884 2.902 2.941 2.943 3.020 3.053 3.089 916 | 129 A' 130 A' 131 A' 57 A" 132 A' 133 A' 134 A' 58 A" 917 | 3.100 3.152 3.189 3.248 3.260 3.269 3.276 3.282 918 | 59 A" 135 A' 60 A" 136 A' 137 A' 138 A' 61 A" 139 A' 919 | 3.327 3.564 3.704 3.792 3.831 3.927 3.992 4.153 920 | 62 A" 140 A' 141 A' 142 A' 143 A' 144 A' 145 A' 146 A' 921 | 4.193 4.224 4.224 4.228 4.235 4.238 4.238 4.271 922 | 63 A" 64 A" 147 A' 65 A" 148 A' 66 A" 149 A' 67 A" 923 | 4.343 4.343 4.345 4.386 4.406 4.519 4.544 4.632 924 | 68 A" 150 A' 151 A' 152 A' 153 A' 69 A" 154 A' 155 A' 925 | 4.673 4.686 4.696 4.729 4.751 4.805 4.832 4.839 926 | 70 A" 156 A' 71 A" 157 A' 158 A' 159 A' 160 A' 161 A' 927 | 5.284 5.307 5.308 5.653 6.556 6.592 6.721 6.724 928 | 162 A' 72 A" 163 A' 164 A' 73 A" 165 A' 166 A' 74 A" 929 | 6.729 6.774 6.838 6.839 6.885 6.931 7.303 7.303 930 | 167 A' 75 A" 76 A" 168 A' 169 A' 170 A' 171 A' 77 A" 931 | 24.570 24.731 25.020 25.119 25.215 25.279 28.974 29.560 932 | 172 A' 173 A' 174 A' 175 A' 176 A' 177 A' 178 A' 78 A" 933 | 29.585 29.711 29.911 29.926 29.975 30.015 30.173 36.993 934 | 179 A' 180 A' 79 A" 181 A' 80 A" 182 A' 183 A' 184 A' 935 | 68.726 68.729 68.808 130.621 130.641 130.740 154.3651912.283 936 | 81 A" 185 A' 186 A' 82 A" 187 A' 188 A' 189 A' 190 A' 937 | -------------------------------------------------------------- 938 | 939 | Ground-State Mulliken Net Atomic Charges 940 | 941 | Atom Charge (a.u.) 942 | ---------------------------------------- 943 | 1 I 0.271214 944 | 2 C 0.469793 945 | 3 F -0.301753 946 | 4 F -0.301753 947 | 5 F -0.303385 948 | 6 N -0.671743 949 | 7 C 0.285283 950 | 8 H 0.156820 951 | 9 C 0.285439 952 | 10 H 0.156305 953 | 11 C -0.257270 954 | 12 H 0.130887 955 | 13 C 0.071776 956 | 14 H 0.134771 957 | 15 C -0.257306 958 | 16 H 0.130921 959 | ---------------------------------------- 960 | Sum of atomic charges = -0.000000 961 | 962 | ----------------------------------------------------------------- 963 | Cartesian Multipole Moments 964 | ----------------------------------------------------------------- 965 | Charge (ESU x 10^10) 966 | 0.0000 967 | Dipole Moment (Debye) 968 | X -10.7753 Y -0.0056 Z 0.0000 969 | Tot 10.7753 970 | Quadrupole Moments (Debye-Ang) 971 | XX -71.1739 XY -0.0230 YY -77.6973 972 | XZ 0.0000 YZ -0.0000 ZZ -89.4146 973 | Octopole Moments (Debye-Ang^2) 974 | XXX -71.6642 XXY -0.0182 XYY -1.3506 975 | YYY -1.9705 XXZ 0.0000 XYZ 0.0000 976 | YYZ -0.0000 XZZ 31.6412 YZZ 1.9437 977 | ZZZ 0.0000 978 | Hexadecapole Moments (Debye-Ang^3) 979 | XXXX -2787.4507 XXXY -0.0060 XXYY -548.5373 980 | XYYY -5.7998 YYYY -351.7126 XXXZ 0.0000 981 | XXYZ -0.0000 XYYZ 0.0000 YYYZ -0.0000 982 | XXZZ -622.4569 XYZZ 5.7397 YYZZ -98.9390 983 | XZZZ 0.0000 YZZZ -0.0000 ZZZZ -166.7127 984 | ----------------------------------------------------------------- 985 | 986 | Total job time: 11676.61s(wall), 115598.70s(cpu) 987 | Tue Jun 23 19:24:23 2015 988 | 989 | ************************************************************* 990 | * * 991 | * Thank you very much for using Q-Chem. Have a nice day. * 992 | * * 993 | ************************************************************* 994 | 995 | 996 | -------------------------------------------------------------------------------- /resources/digitfile: -------------------------------------------------------------------------------- 1 | A line with only strings 2 | 12 3 | A line with more string 4 | 123.4 5 | Blubber di bladi da 6 | 1.759e+15 7 | -9.3e-5 8 | A misleading line+5 9 | 10 | empty 11 | 19e-5 is not properly formatted either. 12 | 1.5e+5da is a scientific number 13 | -1.34e+04 14 | -------------------------------------------------------------------------------- /resources/directories/1/2/file: -------------------------------------------------------------------------------- 1 | 1 2 2 | -------------------------------------------------------------------------------- /resources/directories/1/3/file: -------------------------------------------------------------------------------- 1 | 1 3 2 | -------------------------------------------------------------------------------- /resources/directories/1/4/file: -------------------------------------------------------------------------------- 1 | 1 4 2 | -------------------------------------------------------------------------------- /resources/directories/1/5/file: -------------------------------------------------------------------------------- 1 | 1 5 2 | -------------------------------------------------------------------------------- /resources/directories/1/6/file: -------------------------------------------------------------------------------- 1 | 1 6 2 | -------------------------------------------------------------------------------- /resources/directories/2/1/file: -------------------------------------------------------------------------------- 1 | 2 1 2 | -------------------------------------------------------------------------------- /resources/directories/2/3/file: -------------------------------------------------------------------------------- 1 | 2 3 2 | -------------------------------------------------------------------------------- /resources/directories/2/4/file: -------------------------------------------------------------------------------- 1 | 2 4 2 | -------------------------------------------------------------------------------- /resources/directories/2/5/file: -------------------------------------------------------------------------------- 1 | 2 5 2 | -------------------------------------------------------------------------------- /resources/directories/2/6/file: -------------------------------------------------------------------------------- 1 | 2 6 2 | -------------------------------------------------------------------------------- /resources/directories/4/1/file: -------------------------------------------------------------------------------- 1 | 4 1 2 | -------------------------------------------------------------------------------- /resources/directories/4/2/file: -------------------------------------------------------------------------------- 1 | 4 2 2 | -------------------------------------------------------------------------------- /resources/directories/4/3/file: -------------------------------------------------------------------------------- 1 | 4 3 2 | -------------------------------------------------------------------------------- /resources/directories/4/5/file: -------------------------------------------------------------------------------- 1 | 4 5 2 | -------------------------------------------------------------------------------- /resources/directories/4/6/file: -------------------------------------------------------------------------------- 1 | 4 6 2 | -------------------------------------------------------------------------------- /resources/directories/5/1/file: -------------------------------------------------------------------------------- 1 | 5 1 2 | -------------------------------------------------------------------------------- /resources/directories/5/2/file: -------------------------------------------------------------------------------- 1 | 5 2 2 | -------------------------------------------------------------------------------- /resources/directories/5/3/file: -------------------------------------------------------------------------------- 1 | 5 3 2 | -------------------------------------------------------------------------------- /resources/directories/5/4/file: -------------------------------------------------------------------------------- 1 | 5 4 2 | -------------------------------------------------------------------------------- /resources/directories/5/6/file: -------------------------------------------------------------------------------- 1 | 5 6 2 | -------------------------------------------------------------------------------- /resources/directories/6/1/file: -------------------------------------------------------------------------------- 1 | 6 1 2 | -------------------------------------------------------------------------------- /resources/directories/6/2/file: -------------------------------------------------------------------------------- 1 | 6 2 2 | -------------------------------------------------------------------------------- /resources/directories/6/3/file: -------------------------------------------------------------------------------- 1 | 6 3 2 | -------------------------------------------------------------------------------- /resources/directories/6/4/file: -------------------------------------------------------------------------------- 1 | 6 4 2 | -------------------------------------------------------------------------------- /resources/directories/6/5/file: -------------------------------------------------------------------------------- 1 | 6 5 2 | -------------------------------------------------------------------------------- /resources/gutenberg/download.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # download neccessary book files from project gutenberg 3 | 4 | return_url() { 5 | # $1: id 6 | # $2: suffix 7 | local URL="http://www.mirrorservice.org/sites/ftp.ibiblio.org/pub/docs/books/gutenberg" 8 | for ((i=0;i<${#1}-1;++i)) { 9 | URL="$URL/${1:$i:1}" 10 | } 11 | echo "$URL/$1/$1$2.txt" 12 | } 13 | 14 | verbose_sleep() { 15 | local WAIT_TIME=$1 16 | for ((;WAIT_TIME > 0; WAIT_TIME--)); do 17 | printf "\rSleeping for %5i secs." "${WAIT_TIME}" 18 | sleep 1 19 | done 20 | printf "\r" 21 | } 22 | 23 | LIST="1661 345 74 76 1184 1232 1322 135 158 161 16328 174 1952 2591 2701 30254 4300 5200 6130 844 8800 98" 24 | 25 | WGET_ARGS="--continue --local-encoding=ASCII" 26 | 27 | #---- 28 | 29 | RC=0 30 | for book in $LIST; do 31 | wget $WGET_ARGS $(return_url $book) -O "pg$book.txt" 32 | WGRC="$?" 33 | if [ "$WGRC" == "8" ]; then 34 | # Error response from server. Probably we need to add a "-0" 35 | # to the file name 36 | wget $WGET_ARGS $(return_url $book "-0") -O "pg$book.txt" 37 | WGRC="$?" 38 | fi 39 | [ "$WGRC" != 0 ] && RC=1 40 | 41 | verbose_sleep $((2+RANDOM%5)) 42 | done 43 | 44 | exit $RC 45 | -------------------------------------------------------------------------------- /resources/matrices/3 b.mtx: -------------------------------------------------------------------------------- 1 | %%MatrixMarket matrix coordinate real symmetric 2 | 3 3 9 3 | 1 1 1 4 | 1 2 2 5 | 1 3 3 6 | 2 1 4 7 | 2 2 5 8 | 2 3 6 9 | 3 1 8 10 | 3 2 9 11 | 3 3 0 12 | -------------------------------------------------------------------------------- /resources/matrices/3.mtx: -------------------------------------------------------------------------------- 1 | %%MatrixMarket matrix coordinate real symmetric 2 | 3 3 9 3 | 1 1 1 4 | 1 2 1 5 | 1 3 1 6 | 2 1 2 7 | 2 2 2 8 | 2 3 2 9 | 3 1 3 10 | 3 2 3 11 | 3 3 3 12 | -------------------------------------------------------------------------------- /resources/matrices/3a.mtx: -------------------------------------------------------------------------------- 1 | %%MatrixMarket matrix coordinate real symmetric 2 | 3 3 9 3 | 1 1 3 4 | 1 2 3 5 | 1 3 3 6 | 2 1 2 7 | 2 2 2 8 | 2 3 2 9 | 3 1 1 10 | 3 2 1 11 | 3 3 1 12 | -------------------------------------------------------------------------------- /resources/matrices/bcsstm01.mtx: -------------------------------------------------------------------------------- 1 | %%MatrixMarket matrix coordinate real symmetric 2 | 48 48 48 3 | 1 1 1.0000000000000e+02 4 | 2 2 1.0000000000000e+02 5 | 3 3 1.0000000000000e+02 6 | 4 4 0.0000000000000e+00 7 | 5 5 0.0000000000000e+00 8 | 6 6 0.0000000000000e+00 9 | 7 7 1.0000000000000e+02 10 | 8 8 1.0000000000000e+02 11 | 9 9 1.0000000000000e+02 12 | 10 10 0.0000000000000e+00 13 | 11 11 0.0000000000000e+00 14 | 12 12 0.0000000000000e+00 15 | 13 13 1.0000000000000e+02 16 | 14 14 1.0000000000000e+02 17 | 15 15 1.0000000000000e+02 18 | 16 16 0.0000000000000e+00 19 | 17 17 0.0000000000000e+00 20 | 18 18 0.0000000000000e+00 21 | 19 19 1.0000000000000e+02 22 | 20 20 1.0000000000000e+02 23 | 21 21 1.0000000000000e+02 24 | 22 22 0.0000000000000e+00 25 | 23 23 0.0000000000000e+00 26 | 24 24 0.0000000000000e+00 27 | 25 25 2.0000000000000e+02 28 | 26 26 2.0000000000000e+02 29 | 27 27 2.0000000000000e+02 30 | 28 28 0.0000000000000e+00 31 | 29 29 0.0000000000000e+00 32 | 30 30 0.0000000000000e+00 33 | 31 31 -2.0000000000000e+02 34 | 32 32 2.0000000000000e+02 35 | 33 33 2.0000000000000e+02 36 | 34 34 0.0000000000000e+00 37 | 35 35 0.0000000000000e+00 38 | 36 36 0.0000000000000e+00 39 | 37 37 2.0000000000000e+02 40 | 38 38 2.0000000000000e+02 41 | 39 39 2.0000000000000e+02 42 | 40 40 0.0000000000000e+00 43 | 41 41 0.0000000000000e+00 44 | 42 42 0.0000000000000e+00 45 | 43 43 2.0000000000000e+02 46 | 44 44 2.0000000000000e+02 47 | 45 45 2.0000000000000e+02 48 | 46 46 0.0000000000000e+00 49 | 47 47 0.0000000000000e+00 50 | 48 48 0.0000000000000e+00 51 | -------------------------------------------------------------------------------- /resources/matrices/lund_b.mtx: -------------------------------------------------------------------------------- 1 | %%MatrixMarket matrix coordinate real symmetric 2 | 147 147 1293 3 | 1 1 7.6530615000000e+02 4 | 2 1 -2.8061230000000e+02 5 | 8 1 -3.8265308000000e+02 6 | 9 1 -4.7619047000000e+00 7 | 10 1 1.0204082000000e+02 8 | 11 1 4.8469385000000e+02 9 | 2 2 7.6530615000000e+02 10 | 3 2 -2.8061230000000e+02 11 | 9 2 -4.7619047000000e+00 12 | 10 2 1.0204082000000e+02 13 | 11 2 -3.8265308000000e+02 14 | 12 2 -4.7619047000000e+00 15 | 13 2 1.0204082000000e+02 16 | 14 2 4.8469385000000e+02 17 | 3 3 7.6530615000000e+02 18 | 4 3 -2.8061230000000e+02 19 | 12 3 -4.7619047000000e+00 20 | 13 3 1.0204082000000e+02 21 | 14 3 -3.8265308000000e+02 22 | 15 3 -4.7619047000000e+00 23 | 16 3 1.0204082000000e+02 24 | 17 3 4.8469385000000e+02 25 | 4 4 7.6530615000000e+02 26 | 5 4 -2.8061230000000e+02 27 | 15 4 -4.7619047000000e+00 28 | 16 4 1.0204082000000e+02 29 | 17 4 -3.8265308000000e+02 30 | 18 4 -4.7619047000000e+00 31 | 19 4 1.0204082000000e+02 32 | 20 4 4.8469385000000e+02 33 | 5 5 7.6530615000000e+02 34 | 6 5 -2.8061230000000e+02 35 | 18 5 -4.7619047000000e+00 36 | 19 5 1.0204082000000e+02 37 | 20 5 -3.8265308000000e+02 38 | 21 5 -4.7619047000000e+00 39 | 22 5 1.0204082000000e+02 40 | 23 5 4.8469385000000e+02 41 | 6 6 7.6530615000000e+02 42 | 7 6 -2.8061230000000e+02 43 | 21 6 -4.7619047000000e+00 44 | 22 6 1.0204082000000e+02 45 | 23 6 -3.8265308000000e+02 46 | 24 6 -4.7619047000000e+00 47 | 25 6 1.0204082000000e+02 48 | 26 6 4.8469385000000e+02 49 | 7 7 4.3367334000000e+02 50 | 24 7 -4.7619047000000e+00 51 | 25 7 1.0204082000000e+02 52 | 26 7 -3.8265308000000e+02 53 | 27 7 -2.3809519000000e+00 54 | 28 7 5.1020401000000e+01 55 | 8 8 1.8877549000000e+03 56 | 9 8 5.5952377000000e+01 57 | 10 8 -2.8061230000000e+02 58 | 11 8 -3.0612256000000e+02 59 | 29 8 7.6530609000000e+01 60 | 9 9 2.2666672000000e+01 61 | 10 9 -4.7683716000000e-07 62 | 11 9 -1.1920929000000e-07 63 | 12 9 -1.0888889000000e+01 64 | 13 9 4.7683716000000e-07 65 | 14 9 -5.5952377000000e+01 66 | 29 9 -3.2142853000000e+01 67 | 30 9 -2.2222221000000e-01 68 | 31 9 4.7619047000000e+00 69 | 32 9 3.6904755000000e+01 70 | 10 10 1.5306123000000e+03 71 | 11 10 7.6530615000000e+02 72 | 12 10 4.7683716000000e-07 73 | 13 10 -5.6122437000000e+02 74 | 14 10 -2.8061230000000e+02 75 | 29 10 -3.8265308000000e+02 76 | 30 10 -4.7619047000000e+00 77 | 31 10 1.0204082000000e+02 78 | 32 10 4.8469385000000e+02 79 | 11 11 3.7755100000000e+03 80 | 12 11 5.5952377000000e+01 81 | 13 11 -2.8061230000000e+02 82 | 14 11 -3.0612256000000e+02 83 | 29 11 -7.1428564000000e+02 84 | 30 11 -3.6904755000000e+01 85 | 31 11 4.8469385000000e+02 86 | 32 11 1.5306122000000e+02 87 | 12 12 2.2666672000000e+01 88 | 13 12 2.8610229000000e-06 89 | 14 12 3.5762787000000e-07 90 | 15 12 -1.0888889000000e+01 91 | 16 12 -2.8610229000000e-06 92 | 17 12 -5.5952377000000e+01 93 | 30 12 -2.2222221000000e-01 94 | 31 12 4.7619047000000e+00 95 | 32 12 -3.2142853000000e+01 96 | 33 12 -2.2222221000000e-01 97 | 34 12 4.7619047000000e+00 98 | 35 12 3.6904755000000e+01 99 | 13 13 1.5306123000000e+03 100 | 14 13 7.6530615000000e+02 101 | 15 13 -2.8610229000000e-06 102 | 16 13 -5.6122437000000e+02 103 | 17 13 -2.8061230000000e+02 104 | 30 13 -4.7619047000000e+00 105 | 31 13 1.0204082000000e+02 106 | 32 13 -3.8265308000000e+02 107 | 33 13 -4.7619047000000e+00 108 | 34 13 1.0204082000000e+02 109 | 35 13 4.8469385000000e+02 110 | 14 14 3.7755100000000e+03 111 | 15 14 5.5952377000000e+01 112 | 16 14 -2.8061230000000e+02 113 | 17 14 -3.0612231000000e+02 114 | 30 14 3.2142853000000e+01 115 | 31 14 -3.8265308000000e+02 116 | 32 14 -7.1428564000000e+02 117 | 33 14 -3.6904755000000e+01 118 | 34 14 4.8469385000000e+02 119 | 35 14 1.5306120000000e+02 120 | 15 15 2.2666672000000e+01 121 | 16 15 1.9073486000000e-06 122 | 17 15 1.6093254000000e-06 123 | 18 15 -1.0888888000000e+01 124 | 19 15 1.4305115000000e-06 125 | 20 15 -5.5952377000000e+01 126 | 33 15 -2.2222221000000e-01 127 | 34 15 4.7619047000000e+00 128 | 35 15 -3.2142853000000e+01 129 | 36 15 -2.2222221000000e-01 130 | 37 15 4.7619047000000e+00 131 | 38 15 3.6904755000000e+01 132 | 16 16 1.5306123000000e+03 133 | 17 16 7.6530615000000e+02 134 | 18 16 1.9073486000000e-06 135 | 19 16 -5.6122437000000e+02 136 | 20 16 -2.8061230000000e+02 137 | 33 16 -4.7619047000000e+00 138 | 34 16 1.0204082000000e+02 139 | 35 16 -3.8265308000000e+02 140 | 36 16 -4.7619047000000e+00 141 | 37 16 1.0204080000000e+02 142 | 38 16 4.8469385000000e+02 143 | 17 17 3.7755100000000e+03 144 | 18 17 5.5952377000000e+01 145 | 19 17 -2.8061230000000e+02 146 | 20 17 -3.0612256000000e+02 147 | 33 17 3.2142853000000e+01 148 | 34 17 -3.8265308000000e+02 149 | 35 17 -7.1428564000000e+02 150 | 36 17 -3.6904755000000e+01 151 | 37 17 4.8469385000000e+02 152 | 38 17 1.5306120000000e+02 153 | 18 18 2.2666672000000e+01 154 | 19 18 4.7683716000000e-07 155 | 20 18 1.1920929000000e-06 156 | 21 18 -1.0888888000000e+01 157 | 22 18 -2.3841858000000e-06 158 | 23 18 -5.5952377000000e+01 159 | 36 18 -2.2222221000000e-01 160 | 37 18 4.7619047000000e+00 161 | 38 18 -3.2142853000000e+01 162 | 39 18 -2.2222221000000e-01 163 | 40 18 4.7619047000000e+00 164 | 41 18 3.6904755000000e+01 165 | 19 19 1.5306121000000e+03 166 | 20 19 7.6530615000000e+02 167 | 21 19 -2.8610229000000e-06 168 | 22 19 -5.6122437000000e+02 169 | 23 19 -2.8061230000000e+02 170 | 36 19 -4.7619047000000e+00 171 | 37 19 1.0204082000000e+02 172 | 38 19 -3.8265308000000e+02 173 | 39 19 -4.7619047000000e+00 174 | 40 19 1.0204082000000e+02 175 | 41 19 4.8469385000000e+02 176 | 20 20 3.7755100000000e+03 177 | 21 20 5.5952377000000e+01 178 | 22 20 -2.8061230000000e+02 179 | 23 20 -3.0612231000000e+02 180 | 36 20 3.2142853000000e+01 181 | 37 20 -3.8265308000000e+02 182 | 38 20 -7.1428564000000e+02 183 | 39 20 -3.6904755000000e+01 184 | 40 20 4.8469385000000e+02 185 | 41 20 1.5306120000000e+02 186 | 21 21 2.2666672000000e+01 187 | 22 21 9.5367432000000e-06 188 | 23 21 -6.8545341000000e-07 189 | 24 21 -1.0888889000000e+01 190 | 25 21 -6.6757202000000e-06 191 | 26 21 -5.5952393000000e+01 192 | 39 21 -2.2222221000000e-01 193 | 40 21 4.7619047000000e+00 194 | 41 21 -3.2142853000000e+01 195 | 42 21 -2.2222221000000e-01 196 | 43 21 4.7619047000000e+00 197 | 44 21 3.6904770000000e+01 198 | 22 22 1.5306123000000e+03 199 | 23 22 7.6530615000000e+02 200 | 24 22 -7.6293945000000e-06 201 | 25 22 -5.6122461000000e+02 202 | 26 22 -2.8061230000000e+02 203 | 39 22 -4.7619047000000e+00 204 | 40 22 1.0204082000000e+02 205 | 41 22 -3.8265308000000e+02 206 | 42 22 -4.7619047000000e+00 207 | 43 22 1.0204082000000e+02 208 | 44 22 4.8469385000000e+02 209 | 23 23 3.7755100000000e+03 210 | 24 23 5.5952377000000e+01 211 | 25 23 -2.8061230000000e+02 212 | 26 23 -3.0612256000000e+02 213 | 39 23 3.2142853000000e+01 214 | 40 23 -3.8265308000000e+02 215 | 41 23 -7.1428564000000e+02 216 | 42 23 -3.6904755000000e+01 217 | 43 23 4.8469385000000e+02 218 | 44 23 1.5306122000000e+02 219 | 24 24 2.2666672000000e+01 220 | 25 24 1.0013580000000e-05 221 | 26 24 7.8976154000000e-06 222 | 27 24 -1.0888888000000e+01 223 | 28 24 -2.3841858000000e-06 224 | 42 24 -2.2222227000000e-01 225 | 43 24 4.7619057000000e+00 226 | 44 24 -3.2142868000000e+01 227 | 45 24 -2.2222221000000e-01 228 | 46 24 4.7619047000000e+00 229 | 47 24 3.6904755000000e+01 230 | 25 25 1.5306123000000e+03 231 | 26 25 7.6530615000000e+02 232 | 27 25 -2.8610229000000e-06 233 | 28 25 -5.6122437000000e+02 234 | 42 25 -4.7619047000000e+00 235 | 43 25 1.0204082000000e+02 236 | 44 25 -3.8265308000000e+02 237 | 45 25 -4.7619047000000e+00 238 | 46 25 1.0204082000000e+02 239 | 47 25 4.8469385000000e+02 240 | 26 26 3.7755103000000e+03 241 | 27 26 5.5952377000000e+01 242 | 28 26 -2.8061230000000e+02 243 | 42 26 3.2142853000000e+01 244 | 43 26 -3.8265308000000e+02 245 | 44 26 -7.1428589000000e+02 246 | 45 26 -3.6904755000000e+01 247 | 46 26 4.8469385000000e+02 248 | 47 26 1.5306123000000e+02 249 | 27 27 1.1333333000000e+01 250 | 28 27 4.7619066000000e+00 251 | 45 27 -2.2222221000000e-01 252 | 46 27 4.7619047000000e+00 253 | 47 27 -3.2142853000000e+01 254 | 48 27 -1.1111110000000e-01 255 | 49 27 2.3809519000000e+00 256 | 28 28 7.6530615000000e+02 257 | 45 28 -4.7619047000000e+00 258 | 46 28 1.0204082000000e+02 259 | 47 28 -3.8265308000000e+02 260 | 48 28 -2.3809519000000e+00 261 | 49 28 5.1020401000000e+01 262 | 29 29 1.8877549000000e+03 263 | 30 29 5.5952377000000e+01 264 | 31 29 -2.8061230000000e+02 265 | 32 29 -3.0612231000000e+02 266 | 50 29 7.6530609000000e+01 267 | 30 30 2.2666672000000e+01 268 | 31 30 4.7683716000000e-07 269 | 32 30 1.5199184000000e-06 270 | 33 30 -1.0888888000000e+01 271 | 34 30 -2.3841858000000e-06 272 | 35 30 -5.5952377000000e+01 273 | 50 30 -3.2142853000000e+01 274 | 51 30 -2.2222221000000e-01 275 | 52 30 4.7619047000000e+00 276 | 53 30 3.6904755000000e+01 277 | 31 31 1.5306121000000e+03 278 | 32 31 7.6530615000000e+02 279 | 33 31 -2.8610229000000e-06 280 | 34 31 -5.6122437000000e+02 281 | 35 31 -2.8061230000000e+02 282 | 50 31 -3.8265308000000e+02 283 | 51 31 -4.7619047000000e+00 284 | 52 31 1.0204080000000e+02 285 | 53 31 4.8469385000000e+02 286 | 32 32 3.7755100000000e+03 287 | 33 32 5.5952377000000e+01 288 | 34 32 -2.8061230000000e+02 289 | 35 32 -3.0612231000000e+02 290 | 50 32 -7.1428564000000e+02 291 | 51 32 -3.6904755000000e+01 292 | 52 32 4.8469385000000e+02 293 | 53 32 1.5306120000000e+02 294 | 33 33 2.2666672000000e+01 295 | 34 33 5.7220459000000e-06 296 | 35 33 2.4735928000000e-06 297 | 36 33 -1.0888888000000e+01 298 | 37 33 -2.8610229000000e-06 299 | 38 33 -5.5952377000000e+01 300 | 51 33 -2.2222221000000e-01 301 | 52 33 4.7619047000000e+00 302 | 53 33 -3.2142853000000e+01 303 | 54 33 -2.2222221000000e-01 304 | 55 33 4.7619047000000e+00 305 | 56 33 3.6904755000000e+01 306 | 34 34 1.5306121000000e+03 307 | 35 34 7.6530615000000e+02 308 | 36 34 -2.8610229000000e-06 309 | 37 34 -5.6122437000000e+02 310 | 38 34 -2.8061230000000e+02 311 | 51 34 -4.7619047000000e+00 312 | 52 34 1.0204080000000e+02 313 | 53 34 -3.8265308000000e+02 314 | 54 34 -4.7619047000000e+00 315 | 55 34 1.0204082000000e+02 316 | 56 34 4.8469385000000e+02 317 | 35 35 3.7755100000000e+03 318 | 36 35 5.5952377000000e+01 319 | 37 35 -2.8061230000000e+02 320 | 38 35 -3.0612231000000e+02 321 | 51 35 3.2142853000000e+01 322 | 52 35 -3.8265308000000e+02 323 | 53 35 -7.1428564000000e+02 324 | 54 35 -3.6904755000000e+01 325 | 55 35 4.8469385000000e+02 326 | 56 35 1.5306120000000e+02 327 | 36 36 2.2666672000000e+01 328 | 37 36 1.9073486000000e-06 329 | 38 36 1.9371510000000e-06 330 | 39 36 -1.0888888000000e+01 331 | 41 36 -5.5952377000000e+01 332 | 54 36 -2.2222221000000e-01 333 | 55 36 4.7619047000000e+00 334 | 56 36 -3.2142853000000e+01 335 | 57 36 -2.2222221000000e-01 336 | 58 36 4.7619038000000e+00 337 | 59 36 3.6904755000000e+01 338 | 37 37 1.5306121000000e+03 339 | 38 37 7.6530615000000e+02 340 | 39 37 -4.7683716000000e-07 341 | 40 37 -5.6122437000000e+02 342 | 41 37 -2.8061230000000e+02 343 | 54 37 -4.7619047000000e+00 344 | 55 37 1.0204080000000e+02 345 | 56 37 -3.8265308000000e+02 346 | 57 37 -4.7619038000000e+00 347 | 58 37 1.0204080000000e+02 348 | 59 37 4.8469385000000e+02 349 | 38 38 3.7755100000000e+03 350 | 39 38 5.5952377000000e+01 351 | 40 38 -2.8061230000000e+02 352 | 41 38 -3.0612256000000e+02 353 | 54 38 3.2142853000000e+01 354 | 55 38 -3.8265308000000e+02 355 | 56 38 -7.1428564000000e+02 356 | 57 38 -3.6904755000000e+01 357 | 58 38 4.8469385000000e+02 358 | 59 38 1.5306120000000e+02 359 | 39 39 2.2666656000000e+01 360 | 40 39 2.3841858000000e-06 361 | 41 39 5.1856041000000e-06 362 | 42 39 -1.0888888000000e+01 363 | 43 39 -2.3841858000000e-06 364 | 44 39 -5.5952377000000e+01 365 | 57 39 -2.2222221000000e-01 366 | 58 39 4.7619047000000e+00 367 | 59 39 -3.2142853000000e+01 368 | 60 39 -2.2222221000000e-01 369 | 61 39 4.7619047000000e+00 370 | 62 39 3.6904755000000e+01 371 | 40 40 1.5306121000000e+03 372 | 41 40 7.6530591000000e+02 373 | 42 40 -2.3841858000000e-06 374 | 43 40 -5.6122437000000e+02 375 | 44 40 -2.8061230000000e+02 376 | 57 40 -4.7619047000000e+00 377 | 58 40 1.0204080000000e+02 378 | 59 40 -3.8265308000000e+02 379 | 60 40 -4.7619047000000e+00 380 | 61 40 1.0204080000000e+02 381 | 62 40 4.8469385000000e+02 382 | 41 41 3.7755098000000e+03 383 | 42 41 5.5952377000000e+01 384 | 43 41 -2.8061230000000e+02 385 | 44 41 -3.0612231000000e+02 386 | 57 41 3.2142853000000e+01 387 | 58 41 -3.8265308000000e+02 388 | 59 41 -7.1428564000000e+02 389 | 60 41 -3.6904755000000e+01 390 | 61 41 4.8469385000000e+02 391 | 62 41 1.5306120000000e+02 392 | 42 42 2.2666672000000e+01 393 | 43 42 1.3828278000000e-05 394 | 44 42 -6.4671040000000e-06 395 | 45 42 -1.0888891000000e+01 396 | 46 42 -1.1444092000000e-05 397 | 47 42 -5.5952393000000e+01 398 | 60 42 -2.2222221000000e-01 399 | 61 42 4.7619047000000e+00 400 | 62 42 -3.2142853000000e+01 401 | 63 42 -2.2222227000000e-01 402 | 64 42 4.7619057000000e+00 403 | 65 42 3.6904770000000e+01 404 | 43 43 1.5306123000000e+03 405 | 44 43 7.6530615000000e+02 406 | 45 43 -1.1444092000000e-05 407 | 46 43 -5.6122461000000e+02 408 | 47 43 -2.8061230000000e+02 409 | 60 43 -4.7619047000000e+00 410 | 61 43 1.0204080000000e+02 411 | 62 43 -3.8265308000000e+02 412 | 63 43 -4.7619057000000e+00 413 | 64 43 1.0204082000000e+02 414 | 65 43 4.8469409000000e+02 415 | 44 44 3.7755103000000e+03 416 | 45 44 5.5952393000000e+01 417 | 46 44 -2.8061230000000e+02 418 | 47 44 -3.0612256000000e+02 419 | 60 44 3.2142853000000e+01 420 | 61 44 -3.8265308000000e+02 421 | 62 44 -7.1428564000000e+02 422 | 63 44 -3.6904755000000e+01 423 | 64 44 4.8469385000000e+02 424 | 65 44 1.5306123000000e+02 425 | 45 45 2.2666672000000e+01 426 | 46 45 6.1988831000000e-06 427 | 47 45 1.5437603000000e-05 428 | 48 45 -1.0888888000000e+01 429 | 49 45 7.1525574000000e-06 430 | 63 45 -2.2222227000000e-01 431 | 64 45 4.7619057000000e+00 432 | 65 45 -3.2142868000000e+01 433 | 66 45 -2.2222221000000e-01 434 | 67 45 4.7619047000000e+00 435 | 68 45 3.6904755000000e+01 436 | 46 46 1.5306123000000e+03 437 | 47 46 7.6530615000000e+02 438 | 48 46 6.6757202000000e-06 439 | 49 46 -5.6122437000000e+02 440 | 63 46 -4.7619057000000e+00 441 | 64 46 1.0204083000000e+02 442 | 65 46 -3.8265308000000e+02 443 | 66 46 -4.7619047000000e+00 444 | 67 46 1.0204082000000e+02 445 | 68 46 4.8469385000000e+02 446 | 47 47 3.7755105000000e+03 447 | 48 47 5.5952377000000e+01 448 | 49 47 -2.8061230000000e+02 449 | 63 47 3.2142868000000e+01 450 | 64 47 -3.8265308000000e+02 451 | 65 47 -7.1428589000000e+02 452 | 66 47 -3.6904770000000e+01 453 | 67 47 4.8469385000000e+02 454 | 68 47 1.5306122000000e+02 455 | 48 48 1.1333332000000e+01 456 | 49 48 4.7618952000000e+00 457 | 66 48 -2.2222215000000e-01 458 | 67 48 4.7619028000000e+00 459 | 68 48 -3.2142853000000e+01 460 | 69 48 -1.1111104000000e-01 461 | 70 48 2.3809509000000e+00 462 | 49 49 7.6530591000000e+02 463 | 66 49 -4.7619028000000e+00 464 | 67 49 1.0204079000000e+02 465 | 68 49 -3.8265283000000e+02 466 | 69 49 -2.3809509000000e+00 467 | 70 49 5.1020386000000e+01 468 | 50 50 1.8877549000000e+03 469 | 51 50 5.5952377000000e+01 470 | 52 50 -2.8061230000000e+02 471 | 53 50 -3.0612231000000e+02 472 | 71 50 7.6530609000000e+01 473 | 51 51 2.2666672000000e+01 474 | 52 51 8.1062317000000e-06 475 | 53 51 2.7716160000000e-06 476 | 54 51 -1.0888888000000e+01 477 | 55 51 -2.8610229000000e-06 478 | 56 51 -5.5952377000000e+01 479 | 71 51 -3.2142853000000e+01 480 | 72 51 -2.2222221000000e-01 481 | 73 51 4.7619047000000e+00 482 | 74 51 3.6904755000000e+01 483 | 52 52 1.5306121000000e+03 484 | 53 52 7.6530615000000e+02 485 | 54 52 -2.8610229000000e-06 486 | 55 52 -5.6122437000000e+02 487 | 56 52 -2.8061230000000e+02 488 | 71 52 -3.8265308000000e+02 489 | 72 52 -4.7619047000000e+00 490 | 73 52 1.0204082000000e+02 491 | 74 52 4.8469385000000e+02 492 | 53 53 3.7755100000000e+03 493 | 54 53 5.5952377000000e+01 494 | 55 53 -2.8061230000000e+02 495 | 56 53 -3.0612231000000e+02 496 | 71 53 -7.1428564000000e+02 497 | 72 53 -3.6904755000000e+01 498 | 73 53 4.8469385000000e+02 499 | 74 53 1.5306122000000e+02 500 | 54 54 2.2666672000000e+01 501 | 55 54 9.0599060000000e-06 502 | 56 54 3.4272671000000e-06 503 | 57 54 -1.0888888000000e+01 504 | 58 54 -6.6757202000000e-06 505 | 59 54 -5.5952377000000e+01 506 | 72 54 -2.2222221000000e-01 507 | 73 54 4.7619047000000e+00 508 | 74 54 -3.2142853000000e+01 509 | 75 54 -2.2222221000000e-01 510 | 76 54 4.7619047000000e+00 511 | 77 54 3.6904755000000e+01 512 | 55 55 1.5306121000000e+03 513 | 56 55 7.6530615000000e+02 514 | 57 55 -6.6757202000000e-06 515 | 58 55 -5.6122437000000e+02 516 | 59 55 -2.8061230000000e+02 517 | 72 55 -4.7619047000000e+00 518 | 73 55 1.0204082000000e+02 519 | 74 55 -3.8265308000000e+02 520 | 75 55 -4.7619047000000e+00 521 | 76 55 1.0204082000000e+02 522 | 77 55 4.8469385000000e+02 523 | 56 56 3.7755100000000e+03 524 | 57 56 5.5952377000000e+01 525 | 58 56 -2.8061206000000e+02 526 | 59 56 -3.0612231000000e+02 527 | 72 56 3.2142853000000e+01 528 | 73 56 -3.8265308000000e+02 529 | 74 56 -7.1428564000000e+02 530 | 75 56 -3.6904755000000e+01 531 | 76 56 4.8469385000000e+02 532 | 77 56 1.5306122000000e+02 533 | 57 57 2.2666672000000e+01 534 | 58 57 1.2397766000000e-05 535 | 59 57 5.0663948000000e-07 536 | 60 57 -1.0888889000000e+01 537 | 61 57 -4.2915344000000e-06 538 | 62 57 -5.5952377000000e+01 539 | 75 57 -2.2222221000000e-01 540 | 76 57 4.7619057000000e+00 541 | 77 57 -3.2142853000000e+01 542 | 78 57 -2.2222221000000e-01 543 | 79 57 4.7619047000000e+00 544 | 80 57 3.6904770000000e+01 545 | 58 58 1.5306123000000e+03 546 | 59 58 7.6530615000000e+02 547 | 60 58 -4.2915344000000e-06 548 | 61 58 -5.6122437000000e+02 549 | 62 58 -2.8061230000000e+02 550 | 75 58 -4.7619047000000e+00 551 | 76 58 1.0204082000000e+02 552 | 77 58 -3.8265308000000e+02 553 | 78 58 -4.7619047000000e+00 554 | 79 58 1.0204082000000e+02 555 | 80 58 4.8469385000000e+02 556 | 59 59 3.7755100000000e+03 557 | 60 59 5.5952377000000e+01 558 | 61 59 -2.8061230000000e+02 559 | 62 59 -3.0612256000000e+02 560 | 75 59 3.2142853000000e+01 561 | 76 59 -3.8265308000000e+02 562 | 77 59 -7.1428564000000e+02 563 | 78 59 -3.6904755000000e+01 564 | 79 59 4.8469385000000e+02 565 | 80 59 1.5306123000000e+02 566 | 60 60 2.2666672000000e+01 567 | 61 60 2.4318695000000e-05 568 | 62 60 3.0100346000000e-06 569 | 63 60 -1.0888891000000e+01 570 | 64 60 -1.8119812000000e-05 571 | 65 60 -5.5952393000000e+01 572 | 78 60 -2.2222221000000e-01 573 | 79 60 4.7619047000000e+00 574 | 80 60 -3.2142853000000e+01 575 | 81 60 -2.2222227000000e-01 576 | 82 60 4.7619057000000e+00 577 | 83 60 3.6904770000000e+01 578 | 61 61 1.5306123000000e+03 579 | 62 61 7.6530615000000e+02 580 | 63 61 -1.8119812000000e-05 581 | 64 61 -5.6122461000000e+02 582 | 65 61 -2.8061230000000e+02 583 | 78 61 -4.7619038000000e+00 584 | 79 61 1.0204082000000e+02 585 | 80 61 -3.8265308000000e+02 586 | 81 61 -4.7619057000000e+00 587 | 82 61 1.0204083000000e+02 588 | 83 61 4.8469409000000e+02 589 | 62 62 3.7755100000000e+03 590 | 63 62 5.5952377000000e+01 591 | 64 62 -2.8061206000000e+02 592 | 65 62 -3.0612256000000e+02 593 | 78 62 3.2142853000000e+01 594 | 79 62 -3.8265308000000e+02 595 | 80 62 -7.1428564000000e+02 596 | 81 62 -3.6904755000000e+01 597 | 82 62 4.8469385000000e+02 598 | 83 62 1.5306123000000e+02 599 | 63 63 2.2666672000000e+01 600 | 64 63 1.2874603000000e-05 601 | 65 63 1.0699034000000e-05 602 | 66 63 -1.0888889000000e+01 603 | 67 63 5.7220459000000e-06 604 | 68 63 -5.5952377000000e+01 605 | 81 63 -2.2222227000000e-01 606 | 82 63 4.7619057000000e+00 607 | 83 63 -3.2142868000000e+01 608 | 84 63 -2.2222221000000e-01 609 | 85 63 4.7619047000000e+00 610 | 86 63 3.6904755000000e+01 611 | 64 64 1.5306123000000e+03 612 | 65 64 7.6530615000000e+02 613 | 66 64 5.2452087000000e-06 614 | 67 64 -5.6122437000000e+02 615 | 68 64 -2.8061230000000e+02 616 | 81 64 -4.7619057000000e+00 617 | 82 64 1.0204083000000e+02 618 | 83 64 -3.8265308000000e+02 619 | 84 64 -4.7619047000000e+00 620 | 85 64 1.0204082000000e+02 621 | 86 64 4.8469385000000e+02 622 | 65 65 3.7755105000000e+03 623 | 66 65 5.5952377000000e+01 624 | 67 65 -2.8061230000000e+02 625 | 68 65 -3.0612256000000e+02 626 | 81 65 3.2142853000000e+01 627 | 82 65 -3.8265308000000e+02 628 | 83 65 -7.1428589000000e+02 629 | 84 65 -3.6904755000000e+01 630 | 85 65 4.8469385000000e+02 631 | 86 65 1.5306120000000e+02 632 | 66 66 2.2666656000000e+01 633 | 67 66 9.0599060000000e-06 634 | 68 66 1.4632940000000e-05 635 | 69 66 -1.0888886000000e+01 636 | 70 66 -1.2874603000000e-05 637 | 84 66 -2.2222221000000e-01 638 | 85 66 4.7619047000000e+00 639 | 86 66 -3.2142853000000e+01 640 | 87 66 -2.2222221000000e-01 641 | 88 66 4.7619047000000e+00 642 | 89 66 3.6904755000000e+01 643 | 67 67 1.5306121000000e+03 644 | 68 67 7.6530591000000e+02 645 | 69 67 -1.3351440000000e-05 646 | 70 67 -5.6122437000000e+02 647 | 84 67 -4.7619047000000e+00 648 | 85 67 1.0204082000000e+02 649 | 86 67 -3.8265308000000e+02 650 | 87 67 -4.7619047000000e+00 651 | 88 67 1.0204082000000e+02 652 | 89 67 4.8469385000000e+02 653 | 68 68 3.7755098000000e+03 654 | 69 68 5.5952362000000e+01 655 | 70 68 -2.8061206000000e+02 656 | 84 68 3.2142853000000e+01 657 | 85 68 -3.8265308000000e+02 658 | 86 68 -7.1428564000000e+02 659 | 87 68 -3.6904755000000e+01 660 | 88 68 4.8469385000000e+02 661 | 89 68 1.5306120000000e+02 662 | 69 69 1.1333330000000e+01 663 | 70 69 4.7619190000000e+00 664 | 87 69 -2.2222221000000e-01 665 | 88 69 4.7619047000000e+00 666 | 89 69 -3.2142853000000e+01 667 | 90 69 -1.1111110000000e-01 668 | 91 69 2.3809519000000e+00 669 | 70 70 7.6530591000000e+02 670 | 87 70 -4.7619047000000e+00 671 | 88 70 1.0204082000000e+02 672 | 89 70 -3.8265308000000e+02 673 | 90 70 -2.3809519000000e+00 674 | 91 70 5.1020401000000e+01 675 | 71 71 1.8877549000000e+03 676 | 72 71 5.5952377000000e+01 677 | 73 71 -2.8061230000000e+02 678 | 74 71 -3.0612256000000e+02 679 | 92 71 7.6530609000000e+01 680 | 72 72 2.2666672000000e+01 681 | 73 72 -3.3378601000000e-06 682 | 74 72 -1.4603138000000e-06 683 | 75 72 -1.0888889000000e+01 684 | 76 72 -9.5367432000000e-07 685 | 77 72 -5.5952377000000e+01 686 | 92 72 -3.2142853000000e+01 687 | 93 72 -2.2222221000000e-01 688 | 94 72 4.7619047000000e+00 689 | 95 72 3.6904755000000e+01 690 | 73 73 1.5306123000000e+03 691 | 74 73 7.6530615000000e+02 692 | 75 73 -4.7683716000000e-07 693 | 76 73 -5.6122437000000e+02 694 | 77 73 -2.8061230000000e+02 695 | 92 73 -3.8265308000000e+02 696 | 93 73 -4.7619047000000e+00 697 | 94 73 1.0204080000000e+02 698 | 95 73 4.8469385000000e+02 699 | 74 74 3.7755100000000e+03 700 | 75 74 5.5952377000000e+01 701 | 76 74 -2.8061230000000e+02 702 | 77 74 -3.0612256000000e+02 703 | 92 74 -7.1428564000000e+02 704 | 93 74 -3.6904755000000e+01 705 | 94 74 4.8469385000000e+02 706 | 95 74 1.5306120000000e+02 707 | 75 75 2.2666672000000e+01 708 | 76 75 -4.7683716000000e-06 709 | 77 75 7.1525574000000e-07 710 | 78 75 -1.0888889000000e+01 711 | 79 75 4.2915344000000e-06 712 | 80 75 -5.5952377000000e+01 713 | 93 75 -2.2222221000000e-01 714 | 94 75 4.7619047000000e+00 715 | 95 75 -3.2142853000000e+01 716 | 96 75 -2.2222221000000e-01 717 | 97 75 4.7619038000000e+00 718 | 98 75 3.6904755000000e+01 719 | 76 76 1.5306123000000e+03 720 | 77 76 7.6530615000000e+02 721 | 78 76 4.2915344000000e-06 722 | 79 76 -5.6122437000000e+02 723 | 80 76 -2.8061230000000e+02 724 | 93 76 -4.7619047000000e+00 725 | 94 76 1.0204080000000e+02 726 | 95 76 -3.8265308000000e+02 727 | 96 76 -4.7619038000000e+00 728 | 97 76 1.0204080000000e+02 729 | 98 76 4.8469385000000e+02 730 | 77 77 3.7755100000000e+03 731 | 78 77 5.5952377000000e+01 732 | 79 77 -2.8061230000000e+02 733 | 80 77 -3.0612231000000e+02 734 | 93 77 3.2142853000000e+01 735 | 94 77 -3.8265308000000e+02 736 | 95 77 -7.1428564000000e+02 737 | 96 77 -3.6904755000000e+01 738 | 97 77 4.8469385000000e+02 739 | 98 77 1.5306120000000e+02 740 | 78 78 2.2666672000000e+01 741 | 79 78 5.2452087000000e-06 742 | 80 78 4.4107437000000e-06 743 | 81 78 -1.0888888000000e+01 744 | 82 78 -1.0013580000000e-05 745 | 83 78 -5.5952377000000e+01 746 | 96 78 -2.2222221000000e-01 747 | 97 78 4.7619047000000e+00 748 | 98 78 -3.2142853000000e+01 749 | 99 78 -2.2222221000000e-01 750 | 100 78 4.7619047000000e+00 751 | 101 78 3.6904770000000e+01 752 | 79 79 1.5306123000000e+03 753 | 80 79 7.6530615000000e+02 754 | 81 79 -9.0599060000000e-06 755 | 82 79 -5.6122437000000e+02 756 | 83 79 -2.8061230000000e+02 757 | 96 79 -4.7619047000000e+00 758 | 97 79 1.0204080000000e+02 759 | 98 79 -3.8265308000000e+02 760 | 99 79 -4.7619047000000e+00 761 | 100 79 1.0204082000000e+02 762 | 101 79 4.8469385000000e+02 763 | 80 80 3.7755100000000e+03 764 | 81 80 5.5952377000000e+01 765 | 82 80 -2.8061206000000e+02 766 | 83 80 -3.0612256000000e+02 767 | 96 80 3.2142853000000e+01 768 | 97 80 -3.8265308000000e+02 769 | 98 80 -7.1428564000000e+02 770 | 99 80 -3.6904755000000e+01 771 | 100 80 4.8469385000000e+02 772 | 101 80 1.5306122000000e+02 773 | 81 81 2.2666656000000e+01 774 | 82 81 3.3378601000000e-06 775 | 83 81 8.2552433000000e-06 776 | 84 81 -1.0888887000000e+01 777 | 85 81 4.2915344000000e-06 778 | 86 81 -5.5952362000000e+01 779 | 99 81 -2.2222221000000e-01 780 | 100 81 4.7619047000000e+00 781 | 101 81 -3.2142853000000e+01 782 | 102 81 -2.2222221000000e-01 783 | 103 81 4.7619038000000e+00 784 | 104 81 3.6904755000000e+01 785 | 82 82 1.5306121000000e+03 786 | 83 82 7.6530615000000e+02 787 | 84 82 3.8146973000000e-06 788 | 85 82 -5.6122437000000e+02 789 | 86 82 -2.8061206000000e+02 790 | 99 82 -4.7619047000000e+00 791 | 100 82 1.0204080000000e+02 792 | 101 82 -3.8265308000000e+02 793 | 102 82 -4.7619038000000e+00 794 | 103 82 1.0204079000000e+02 795 | 104 82 4.8469385000000e+02 796 | 83 83 3.7755100000000e+03 797 | 84 83 5.5952377000000e+01 798 | 85 83 -2.8061230000000e+02 799 | 86 83 -3.0612231000000e+02 800 | 99 83 3.2142853000000e+01 801 | 100 83 -3.8265308000000e+02 802 | 101 83 -7.1428564000000e+02 803 | 102 83 -3.6904755000000e+01 804 | 103 83 4.8469385000000e+02 805 | 104 83 1.5306119000000e+02 806 | 84 84 2.2666656000000e+01 807 | 85 84 -9.0599060000000e-06 808 | 86 84 -5.3346157000000e-06 809 | 87 84 -1.0888887000000e+01 810 | 88 84 4.2915344000000e-06 811 | 89 84 -5.5952377000000e+01 812 | 102 84 -2.2222221000000e-01 813 | 103 84 4.7619038000000e+00 814 | 104 84 -3.2142853000000e+01 815 | 105 84 -2.2222221000000e-01 816 | 106 84 4.7619038000000e+00 817 | 107 84 3.6904755000000e+01 818 | 85 85 1.5306121000000e+03 819 | 86 85 7.6530591000000e+02 820 | 87 85 3.8146973000000e-06 821 | 88 85 -5.6122437000000e+02 822 | 89 85 -2.8061206000000e+02 823 | 102 85 -4.7619038000000e+00 824 | 103 85 1.0204079000000e+02 825 | 104 85 -3.8265308000000e+02 826 | 105 85 -4.7619038000000e+00 827 | 106 85 1.0204079000000e+02 828 | 107 85 4.8469385000000e+02 829 | 86 86 3.7755095000000e+03 830 | 87 86 5.5952377000000e+01 831 | 88 86 -2.8061230000000e+02 832 | 89 86 -3.0612231000000e+02 833 | 102 86 3.2142853000000e+01 834 | 103 86 -3.8265308000000e+02 835 | 104 86 -7.1428564000000e+02 836 | 105 86 -3.6904755000000e+01 837 | 106 86 4.8469385000000e+02 838 | 107 86 1.5306119000000e+02 839 | 87 87 2.2666656000000e+01 840 | 88 87 -3.5762787000000e-05 841 | 89 87 6.8545341000000e-07 842 | 90 87 -1.0888883000000e+01 843 | 91 87 3.0994415000000e-05 844 | 105 87 -2.2222227000000e-01 845 | 106 87 4.7619047000000e+00 846 | 107 87 -3.2142853000000e+01 847 | 108 87 -2.2222215000000e-01 848 | 109 87 4.7619028000000e+00 849 | 110 87 3.6904739000000e+01 850 | 88 88 1.5306118000000e+03 851 | 89 88 7.6530591000000e+02 852 | 90 88 3.0994415000000e-05 853 | 91 88 -5.6122412000000e+02 854 | 105 88 -4.7619047000000e+00 855 | 106 88 1.0204082000000e+02 856 | 107 88 -3.8265308000000e+02 857 | 108 88 -4.7619028000000e+00 858 | 109 88 1.0204079000000e+02 859 | 110 88 4.8469360000000e+02 860 | 89 89 3.7755095000000e+03 861 | 90 89 5.5952362000000e+01 862 | 91 89 -2.8061230000000e+02 863 | 105 89 3.2142868000000e+01 864 | 106 89 -3.8265308000000e+02 865 | 107 89 -7.1428589000000e+02 866 | 108 89 -3.6904770000000e+01 867 | 109 89 4.8469385000000e+02 868 | 110 89 1.5306117000000e+02 869 | 90 90 1.1333327000000e+01 870 | 91 90 4.7618694000000e+00 871 | 108 90 -2.2222209000000e-01 872 | 109 90 4.7619009000000e+00 873 | 110 90 -3.2142822000000e+01 874 | 111 90 -1.1111104000000e-01 875 | 112 90 2.3809509000000e+00 876 | 91 91 7.6530566000000e+02 877 | 108 91 -4.7619009000000e+00 878 | 109 91 1.0204074000000e+02 879 | 110 91 -3.8265283000000e+02 880 | 111 91 -2.3809509000000e+00 881 | 112 91 5.1020386000000e+01 882 | 92 92 1.8877549000000e+03 883 | 93 92 5.5952377000000e+01 884 | 94 92 -2.8061230000000e+02 885 | 95 92 -3.0612231000000e+02 886 | 113 92 7.6530609000000e+01 887 | 93 93 2.2666672000000e+01 888 | 94 93 1.5735626000000e-05 889 | 95 93 4.5597553000000e-06 890 | 96 93 -1.0888889000000e+01 891 | 97 93 -9.5367432000000e-06 892 | 98 93 -5.5952377000000e+01 893 | 113 93 -3.2142853000000e+01 894 | 114 93 -2.2222221000000e-01 895 | 115 93 4.7619047000000e+00 896 | 116 93 3.6904770000000e+01 897 | 94 94 1.5306123000000e+03 898 | 95 94 7.6530615000000e+02 899 | 96 94 -9.0599060000000e-06 900 | 97 94 -5.6122437000000e+02 901 | 98 94 -2.8061230000000e+02 902 | 113 94 -3.8265308000000e+02 903 | 114 94 -4.7619047000000e+00 904 | 115 94 1.0204082000000e+02 905 | 116 94 4.8469385000000e+02 906 | 95 95 3.7755100000000e+03 907 | 96 95 5.5952377000000e+01 908 | 97 95 -2.8061230000000e+02 909 | 98 95 -3.0612256000000e+02 910 | 113 95 -7.1428564000000e+02 911 | 114 95 -3.6904755000000e+01 912 | 115 95 4.8469385000000e+02 913 | 116 95 1.5306123000000e+02 914 | 96 96 2.2666672000000e+01 915 | 97 96 3.5762787000000e-05 916 | 98 96 5.2750111000000e-06 917 | 99 96 -1.0888892000000e+01 918 | 100 96 -2.2888184000000e-05 919 | 101 96 -5.5952408000000e+01 920 | 114 96 -2.2222227000000e-01 921 | 115 96 4.7619057000000e+00 922 | 116 96 -3.2142853000000e+01 923 | 117 96 -2.2222233000000e-01 924 | 118 96 4.7619066000000e+00 925 | 119 96 3.6904785000000e+01 926 | 97 97 1.5306123000000e+03 927 | 98 97 7.6530615000000e+02 928 | 99 97 -2.2411346000000e-05 929 | 100 97 -5.6122461000000e+02 930 | 101 97 -2.8061255000000e+02 931 | 114 97 -4.7619057000000e+00 932 | 115 97 1.0204083000000e+02 933 | 116 97 -3.8265308000000e+02 934 | 117 97 -4.7619066000000e+00 935 | 118 97 1.0204085000000e+02 936 | 119 97 4.8469409000000e+02 937 | 98 98 3.7755103000000e+03 938 | 99 98 5.5952377000000e+01 939 | 100 98 -2.8061206000000e+02 940 | 101 98 -3.0612256000000e+02 941 | 114 98 3.2142853000000e+01 942 | 115 98 -3.8265308000000e+02 943 | 116 98 -7.1428589000000e+02 944 | 117 98 -3.6904770000000e+01 945 | 118 98 4.8469409000000e+02 946 | 119 98 1.5306126000000e+02 947 | 99 99 2.2666672000000e+01 948 | 100 99 3.0994415000000e-05 949 | 101 99 2.8818846000000e-05 950 | 102 99 -1.0888887000000e+01 951 | 103 99 -4.2915344000000e-06 952 | 104 99 -5.5952377000000e+01 953 | 117 99 -2.2222233000000e-01 954 | 118 99 4.7619066000000e+00 955 | 119 99 -3.2142868000000e+01 956 | 120 99 -2.2222227000000e-01 957 | 121 99 4.7619057000000e+00 958 | 122 99 3.6904755000000e+01 959 | 100 100 1.5306123000000e+03 960 | 101 100 7.6530615000000e+02 961 | 102 100 -4.2915344000000e-06 962 | 103 100 -5.6122437000000e+02 963 | 104 100 -2.8061230000000e+02 964 | 117 100 -4.7619066000000e+00 965 | 118 100 1.0204086000000e+02 966 | 119 100 -3.8265332000000e+02 967 | 120 100 -4.7619057000000e+00 968 | 121 100 1.0204083000000e+02 969 | 122 100 4.8469385000000e+02 970 | 101 101 3.7755105000000e+03 971 | 102 101 5.5952377000000e+01 972 | 103 101 -2.8061206000000e+02 973 | 104 101 -3.0612231000000e+02 974 | 117 101 3.2142868000000e+01 975 | 118 101 -3.8265308000000e+02 976 | 119 101 -7.1428589000000e+02 977 | 120 101 -3.6904770000000e+01 978 | 121 101 4.8469385000000e+02 979 | 122 101 1.5306123000000e+02 980 | 102 102 2.2666656000000e+01 981 | 103 102 1.0013580000000e-05 982 | 104 102 5.2452087000000e-06 983 | 105 102 -1.0888887000000e+01 984 | 106 102 -4.2915344000000e-06 985 | 107 102 -5.5952377000000e+01 986 | 120 102 -2.2222221000000e-01 987 | 121 102 4.7619047000000e+00 988 | 122 102 -3.2142853000000e+01 989 | 123 102 -2.2222221000000e-01 990 | 124 102 4.7619047000000e+00 991 | 125 102 3.6904755000000e+01 992 | 103 103 1.5306121000000e+03 993 | 104 103 7.6530591000000e+02 994 | 105 103 -4.2915344000000e-06 995 | 106 103 -5.6122437000000e+02 996 | 107 103 -2.8061230000000e+02 997 | 120 103 -4.7619047000000e+00 998 | 121 103 1.0204082000000e+02 999 | 122 103 -3.8265308000000e+02 1000 | 123 103 -4.7619047000000e+00 1001 | 124 103 1.0204082000000e+02 1002 | 125 103 4.8469385000000e+02 1003 | 104 104 3.7755095000000e+03 1004 | 105 104 5.5952362000000e+01 1005 | 106 104 -2.8061206000000e+02 1006 | 107 104 -3.0612231000000e+02 1007 | 120 104 3.2142853000000e+01 1008 | 121 104 -3.8265308000000e+02 1009 | 122 104 -7.1428564000000e+02 1010 | 123 104 -3.6904755000000e+01 1011 | 124 104 4.8469385000000e+02 1012 | 125 104 1.5306120000000e+02 1013 | 105 105 2.2666672000000e+01 1014 | 106 105 4.1961670000000e-05 1015 | 107 105 -2.4676323000000e-05 1016 | 108 105 -1.0888898000000e+01 1017 | 109 105 -3.2424927000000e-05 1018 | 110 105 -5.5952438000000e+01 1019 | 123 105 -2.2222227000000e-01 1020 | 124 105 4.7619057000000e+00 1021 | 125 105 -3.2142853000000e+01 1022 | 126 105 -2.2222239000000e-01 1023 | 127 105 4.7619085000000e+00 1024 | 128 105 3.6904800000000e+01 1025 | 106 106 1.5306128000000e+03 1026 | 107 106 7.6530615000000e+02 1027 | 108 106 -3.1948090000000e-05 1028 | 109 106 -5.6122485000000e+02 1029 | 110 106 -2.8061255000000e+02 1030 | 123 106 -4.7619057000000e+00 1031 | 124 106 1.0204083000000e+02 1032 | 125 106 -3.8265308000000e+02 1033 | 126 106 -4.7619085000000e+00 1034 | 127 106 1.0204089000000e+02 1035 | 128 106 4.8469434000000e+02 1036 | 107 107 3.7755110000000e+03 1037 | 108 107 5.5952408000000e+01 1038 | 109 107 -2.8061230000000e+02 1039 | 110 107 -3.0612280000000e+02 1040 | 123 107 3.2142868000000e+01 1041 | 124 107 -3.8265308000000e+02 1042 | 125 107 -7.1428589000000e+02 1043 | 126 107 -3.6904785000000e+01 1044 | 127 107 4.8469409000000e+02 1045 | 128 107 1.5306136000000e+02 1046 | 108 108 2.2666672000000e+01 1047 | 109 108 4.4345856000000e-05 1048 | 110 108 7.2985888000000e-05 1049 | 111 108 -1.0888884000000e+01 1050 | 112 108 -4.2915344000000e-06 1051 | 126 108 -2.2222239000000e-01 1052 | 127 108 4.7619085000000e+00 1053 | 128 108 -3.2142899000000e+01 1054 | 129 108 -2.2222221000000e-01 1055 | 130 108 4.7619047000000e+00 1056 | 131 108 3.6904755000000e+01 1057 | 109 109 1.5306123000000e+03 1058 | 110 109 7.6530640000000e+02 1059 | 111 109 -4.7683716000000e-06 1060 | 112 109 -5.6122437000000e+02 1061 | 126 109 -4.7619085000000e+00 1062 | 127 109 1.0204089000000e+02 1063 | 128 109 -3.8265332000000e+02 1064 | 129 109 -4.7619047000000e+00 1065 | 130 109 1.0204082000000e+02 1066 | 131 109 4.8469385000000e+02 1067 | 110 110 3.7755103000000e+03 1068 | 111 110 5.5952362000000e+01 1069 | 112 110 -2.8061206000000e+02 1070 | 126 110 3.2142868000000e+01 1071 | 127 110 -3.8265332000000e+02 1072 | 128 110 -7.1428613000000e+02 1073 | 129 110 -3.6904770000000e+01 1074 | 130 110 4.8469385000000e+02 1075 | 131 110 1.5306120000000e+02 1076 | 111 111 1.1333329000000e+01 1077 | 112 111 4.7619076000000e+00 1078 | 129 111 -2.2222215000000e-01 1079 | 130 111 4.7619028000000e+00 1080 | 131 111 -3.2142853000000e+01 1081 | 132 111 -1.1111104000000e-01 1082 | 133 111 2.3809519000000e+00 1083 | 112 112 7.6530591000000e+02 1084 | 129 112 -4.7619028000000e+00 1085 | 130 112 1.0204079000000e+02 1086 | 131 112 -3.8265283000000e+02 1087 | 132 112 -2.3809519000000e+00 1088 | 133 112 5.1020386000000e+01 1089 | 113 113 1.8877551000000e+03 1090 | 114 113 5.5952377000000e+01 1091 | 115 113 -2.8061230000000e+02 1092 | 116 113 -3.0612256000000e+02 1093 | 134 113 7.6530609000000e+01 1094 | 114 114 2.2666672000000e+01 1095 | 115 114 1.4305115000000e-06 1096 | 116 114 -4.5001507000000e-06 1097 | 117 114 -1.0888890000000e+01 1098 | 119 114 -5.5952393000000e+01 1099 | 134 114 -3.2142853000000e+01 1100 | 135 114 -2.2222221000000e-01 1101 | 136 114 3.6904770000000e+01 1102 | 115 115 1.5306123000000e+03 1103 | 116 115 7.6530615000000e+02 1104 | 118 115 -5.6122461000000e+02 1105 | 119 115 -2.8061230000000e+02 1106 | 134 115 -3.8265308000000e+02 1107 | 135 115 -4.7619047000000e+00 1108 | 136 115 4.8469385000000e+02 1109 | 116 116 3.7755103000000e+03 1110 | 117 116 5.5952393000000e+01 1111 | 118 116 -2.8061230000000e+02 1112 | 119 116 -3.0612256000000e+02 1113 | 134 116 -7.1428564000000e+02 1114 | 135 116 -3.6904755000000e+01 1115 | 136 116 1.5306123000000e+02 1116 | 117 117 2.2666672000000e+01 1117 | 118 117 -1.1920929000000e-05 1118 | 119 117 -8.1658363000000e-06 1119 | 120 117 -1.0888891000000e+01 1120 | 121 117 9.5367432000000e-06 1121 | 122 117 -5.5952377000000e+01 1122 | 135 117 -2.2222227000000e-01 1123 | 136 117 -3.2142853000000e+01 1124 | 137 117 -2.2222227000000e-01 1125 | 138 117 3.6904755000000e+01 1126 | 118 118 1.5306125000000e+03 1127 | 119 118 7.6530615000000e+02 1128 | 120 118 9.5367432000000e-06 1129 | 121 118 -5.6122461000000e+02 1130 | 122 118 -2.8061230000000e+02 1131 | 135 118 -4.7619057000000e+00 1132 | 136 118 -3.8265308000000e+02 1133 | 137 118 -4.7619047000000e+00 1134 | 138 118 4.8469385000000e+02 1135 | 119 119 3.7755107000000e+03 1136 | 120 119 5.5952393000000e+01 1137 | 121 119 -2.8061230000000e+02 1138 | 122 119 -3.0612256000000e+02 1139 | 135 119 3.2142853000000e+01 1140 | 136 119 -7.1428589000000e+02 1141 | 137 119 -3.6904770000000e+01 1142 | 138 119 1.5306123000000e+02 1143 | 120 120 2.2666672000000e+01 1144 | 121 120 -1.0967255000000e-05 1145 | 122 120 4.2021275000000e-06 1146 | 123 120 -1.0888888000000e+01 1147 | 125 120 -5.5952377000000e+01 1148 | 137 120 -2.2222221000000e-01 1149 | 138 120 -3.2142853000000e+01 1150 | 139 120 -2.2222221000000e-01 1151 | 140 120 3.6904755000000e+01 1152 | 121 121 1.5306123000000e+03 1153 | 122 121 7.6530615000000e+02 1154 | 124 121 -5.6122437000000e+02 1155 | 125 121 -2.8061230000000e+02 1156 | 137 121 -4.7619038000000e+00 1157 | 138 121 -3.8265308000000e+02 1158 | 139 121 -4.7619038000000e+00 1159 | 140 121 4.8469385000000e+02 1160 | 122 122 3.7755100000000e+03 1161 | 123 122 5.5952377000000e+01 1162 | 124 122 -2.8061230000000e+02 1163 | 125 122 -3.0612231000000e+02 1164 | 137 122 3.2142853000000e+01 1165 | 138 122 -7.1428564000000e+02 1166 | 139 122 -3.6904755000000e+01 1167 | 140 122 1.5306120000000e+02 1168 | 123 123 2.2666672000000e+01 1169 | 124 123 -1.9550323000000e-05 1170 | 125 123 -2.0027161000000e-05 1171 | 126 123 -1.0888891000000e+01 1172 | 127 123 1.8596649000000e-05 1173 | 128 123 -5.5952377000000e+01 1174 | 139 123 -2.2222221000000e-01 1175 | 140 123 -3.2142853000000e+01 1176 | 141 123 -2.2222221000000e-01 1177 | 142 123 3.6904755000000e+01 1178 | 124 124 1.5306123000000e+03 1179 | 125 124 7.6530615000000e+02 1180 | 126 124 1.8596649000000e-05 1181 | 127 124 -5.6122461000000e+02 1182 | 128 124 -2.8061206000000e+02 1183 | 139 124 -4.7619047000000e+00 1184 | 140 124 -3.8265308000000e+02 1185 | 141 124 -4.7619047000000e+00 1186 | 142 124 4.8469385000000e+02 1187 | 125 125 3.7755100000000e+03 1188 | 126 125 5.5952393000000e+01 1189 | 127 125 -2.8061230000000e+02 1190 | 128 125 -3.0612256000000e+02 1191 | 139 125 3.2142853000000e+01 1192 | 140 125 -7.1428564000000e+02 1193 | 141 125 -3.6904755000000e+01 1194 | 142 125 1.5306120000000e+02 1195 | 126 126 2.2666672000000e+01 1196 | 127 126 -4.5299530000000e-05 1197 | 128 126 -1.3589859000000e-05 1198 | 129 126 -1.0888888000000e+01 1199 | 130 126 1.8119812000000e-05 1200 | 131 126 -5.5952362000000e+01 1201 | 141 126 -2.2222221000000e-01 1202 | 142 126 -3.2142853000000e+01 1203 | 143 126 -2.2222215000000e-01 1204 | 144 126 3.6904755000000e+01 1205 | 127 127 1.5306123000000e+03 1206 | 128 127 7.6530615000000e+02 1207 | 129 127 1.7642975000000e-05 1208 | 130 127 -5.6122437000000e+02 1209 | 131 127 -2.8061206000000e+02 1210 | 141 127 -4.7619047000000e+00 1211 | 142 127 -3.8265308000000e+02 1212 | 143 127 -4.7619038000000e+00 1213 | 144 127 4.8469385000000e+02 1214 | 128 128 3.7755110000000e+03 1215 | 129 128 5.5952377000000e+01 1216 | 130 128 -2.8061230000000e+02 1217 | 131 128 -3.0612231000000e+02 1218 | 141 128 3.2142853000000e+01 1219 | 142 128 -7.1428564000000e+02 1220 | 143 128 -3.6904755000000e+01 1221 | 144 128 1.5306119000000e+02 1222 | 129 129 2.2666656000000e+01 1223 | 130 129 -1.9073486000000e-05 1224 | 131 129 1.6093254000000e-06 1225 | 132 129 -1.0888885000000e+01 1226 | 143 129 -2.2222215000000e-01 1227 | 144 129 -3.2142853000000e+01 1228 | 145 129 -2.2222215000000e-01 1229 | 146 129 3.6904755000000e+01 1230 | 130 130 1.5306118000000e+03 1231 | 131 130 7.6530591000000e+02 1232 | 133 130 -5.6122437000000e+02 1233 | 143 130 -4.7619028000000e+00 1234 | 144 130 -3.8265283000000e+02 1235 | 145 130 -4.7619028000000e+00 1236 | 146 130 4.8469360000000e+02 1237 | 131 131 3.7755093000000e+03 1238 | 132 131 5.5952362000000e+01 1239 | 133 131 -2.8061206000000e+02 1240 | 143 131 3.2142853000000e+01 1241 | 144 131 -7.1428540000000e+02 1242 | 145 131 -3.6904755000000e+01 1243 | 146 131 1.5306117000000e+02 1244 | 132 132 1.1333329000000e+01 1245 | 133 132 4.7619028000000e+00 1246 | 145 132 -2.2222215000000e-01 1247 | 146 132 -3.2142853000000e+01 1248 | 147 132 -1.1111104000000e-01 1249 | 133 133 7.6530591000000e+02 1250 | 145 133 -4.7619028000000e+00 1251 | 146 133 -3.8265283000000e+02 1252 | 147 133 -2.3809519000000e+00 1253 | 134 134 1.3520408000000e+03 1254 | 135 134 4.5238098000000e+01 1255 | 136 134 -1.5306122000000e+02 1256 | 135 135 1.1333334000000e+01 1257 | 136 135 -3.9285721000000e+01 1258 | 137 135 -5.4444447000000e+00 1259 | 138 135 -1.0714287000000e+01 1260 | 136 136 1.8877551000000e+03 1261 | 137 136 4.5238098000000e+01 1262 | 138 136 -1.5306123000000e+02 1263 | 137 137 1.1333333000000e+01 1264 | 138 137 -3.9285706000000e+01 1265 | 139 137 -5.4444427000000e+00 1266 | 140 137 -1.0714283000000e+01 1267 | 138 138 1.8877549000000e+03 1268 | 139 138 4.5238083000000e+01 1269 | 140 138 -1.5306117000000e+02 1270 | 139 139 1.1333331000000e+01 1271 | 140 139 -3.9285706000000e+01 1272 | 141 139 -5.4444437000000e+00 1273 | 140 140 1.8877549000000e+03 1274 | 141 140 4.5238098000000e+01 1275 | 142 140 -1.5306120000000e+02 1276 | 141 141 1.1333332000000e+01 1277 | 142 141 -3.9285706000000e+01 1278 | 143 141 -5.4444437000000e+00 1279 | 144 141 -1.0714284000000e+01 1280 | 142 142 1.8877549000000e+03 1281 | 143 142 4.5238083000000e+01 1282 | 144 142 -1.5306120000000e+02 1283 | 143 143 1.1333331000000e+01 1284 | 144 143 -3.9285706000000e+01 1285 | 145 143 -5.4444427000000e+00 1286 | 146 143 -1.0714282000000e+01 1287 | 144 144 1.8877544000000e+03 1288 | 145 144 4.5238083000000e+01 1289 | 146 144 -1.5306117000000e+02 1290 | 145 145 1.1333329000000e+01 1291 | 146 145 -3.9285706000000e+01 1292 | 147 145 -5.4444427000000e+00 1293 | 146 146 1.8877544000000e+03 1294 | 147 146 4.5238083000000e+01 1295 | 147 147 5.5555534000000e+00 1296 | -------------------------------------------------------------------------------- /resources/testfile: -------------------------------------------------------------------------------- 1 | some 2 | data 3 | some 4 | other 5 | date 6 | --------------------------------------------------------------------------------