# TSM_Alg

Algorithmische Geometrie
Algorithmische Geometrie, Sommersemester 2014
Computational Geometry, Summer 2018

Geometric Algorithms (INFOGA) 2018, Block 2, Frank Staals

# Woche 1

time complexity


### Comparison sorts

#### Simple sorts

• Insertion sort
• Selection sort

• Merge sort
• Heap sort
• Quick sort

• Bubble sort

#### Exotic sorts

• Binary tree sort
• Cycle sort
• Library sort
• Patience sort
• Smooth sort
• Strand sort
• Tournament sort
• Cocktail sort
• Comb sort
• Gnome sort
• Block sort
• Odd–even sort
• Curve sort
2d line intersection


### Aufgabe 1

Line–line intersection

# Woche 2

Sweep (Informatik) (Sweep-Line)
Rot-Schwarz-Baum (red–black tree oder RB tree)
Wikipedia: JTS Topology Suite
LocationTech JTS Topology Suite

github.com/locationtech/jts, The JTS Topology Suite is a Java library for creating and manipulating vector geometry.
github.com/locationtech/jts/releases
github.com/locationtech/jts/blob/master/MIGRATION.md
github.com/locationtech/jts/blob/master/USING.md
github.com/locationtech/jts/blob/master/DEVELOPING.md

### Convex Hull – Divide & Conquer

Convex Hull, COMP 215 Lecture 5, PDF
An efficient way of merging two convex hulls

Tangents to & between 2D Polygons

# Woche 4

Kreisgraph

#### Graph

Families of Graphs (PDF)

#### CGAL

2D Arrangements – Arrangement on Surface

### YouTube

#### Maths Resource

Planar Graphs – Worked Examples

#### freeCodeCamp.org

Algorithms Course – Graph Theory Tutorial from a Google Engineer (6:44:39) => 6h!

overlay

#### Gokul Raghuraman

Planar mesh data structure that uses vertices, half-edges and faces

#### UC Davis Academics

Subdivision Surfaces Part 1

# Woche 5

Eulerscher Polyedersatz

Freie Universität Berlin – Lecture 4 (CGAL)

# Woche 9

• Maximum Regret
• Branch-and-bound
• Branch-and-cut

https://github.com/jackspyder/2-opt, Java 2-opt solution for TSP Coursework
2-opt
Lin–Kernighan heuristic, K. Helsgaun (LKH), LK local search

#### Knoten mit gegebenen Kanten

Breitensuche, (breadth-first search, BFS)
Tiefensuche, (depth-first search, DFS)
Iterative Tiefensuche, (Iterative Tiefensuche)
Bestensuche, (best-first search)

#### Knoten ohne Kanten, resp. mit einem vollständigen Graph

Nearest neighbor search
Suchverfahren, Informierte Suche = Heuristik

# Woche 11

github.com/thiagodnf/jacof, Java Ant Colony Optimization Framework
github.com/LazoCoder/Ant-Colony-Optimization-for-the-Traveling-Salesman-Problem, A population based stochastic algorithm for solving the Traveling Salesman Problem
TSP ACO Applet
Ant Colony Optimization Tutorial
github.com/eugenp/tutorials/tree/master/algorithms-genetic

meta-heuristics
Lineare Optimierung, Simplex-Verfahren, Operations Research (Linear Programming)

# Woche 13

### C

PROJ – a generic coordinate transformation software
github.com/OSGeo/proj.4, PROJ.4 – Cartographic Projections Library
PROJ.4
Lat/long (Geodetic alias)
Mercator

### JavaFX

• Sphere
• PhongMaterial
• RotateTransition
• PointLight

### PHP

github.com/mfeldheim/hermap, Hermap libraries: stuff related to maps

# John Levine

John Levine’s Videos

• CS103: Proof by Induction
• CS103: Another Direct Proof
• CS103: Direct Proof
• CS103: Infinite Sets and Definitions
• Iterative Deepening
• Depth First Search
• Breadth First Search – Part 2
• Breadth First Search – Part 1
• A* Search
• Uniform Cost Search
• Minimax with Alpha Beta Pruning
• Monte Carlo Tree Search

# Dynamic Programming

What Is Dynamic Programming and How To Use It

# HackerRank

Algorithms

• Recursion
• Solve ‘Ice Cream Parlor’ Using Binary Search
• Binary Search
• Solve ‘Shortest Reach’ Using BFS
• Solve ‘Connected Cells’ Using DFS
• Solve ‘Recursive Staircase’ Using Recursion
• Quicksort
• Merge Sort
• Bubble Sort
• Solve ‘Coin Change’ Using Memoization and DP
• Memoization and Dynamic Programming
• Sort An Array with Comparator
• Bit Manipulation
• Graph Search, DFS and BFS
• Solve ‘Lonley Integer’ Using Bit Manipulation

Data Structures

• Balanced Parentheses in Expression
• Queue With Two Stacks
• Stacks and Queues
• Cycles in a Linked List
• Linked Lists
• Binary Search Tree
• Trees
• Solve ‘Contacts’ Using Tries
• Tries
• Heaps
• Solve ‘Find the Running Median’ Using Heaps
• Anagram Problem Solution
• Hash Tables
• Solve ‘Ransom Note’ Using Hash Tables

# Scheduling / Project Planning / Critical Path

### Netzplan / Kritischer Pfad

Statt Projekte mit Arbeitspaketen nun nur Abhängigkeiten zwischen Tasks in EINEM Job. Etwas anderes Problem Projektplan/Netzplan vs. Scheduling.
Netzplan | Kritischer Pfad | Beispiel | Berechnung | Produktion (2/3) | Einfach sehr gut erklärt!
Kritischer Pfad im Projektablauf

# TSM_EmbReal – HiFive 1

### Abbrefiations and Dictionary

 ISR Interrupt Service Routine IST Interrupt Service Table CSR Control status register IER Interrupt enable register ISA Instruction Set Architecture PLIC Platform-Level Interrupt Controller CLINT Core Local Interruptor AON Always-On WDT Watchdog Timer RTC Real-Time Clock PMU Power-Management Unit OTP One-Time Programmable Memory GPIO General Purpose Input/Output Controller

### Wikipedia

Befehlssatz, Instruction Set
Befehlssatzarchitektur, Instruction Set Architecture (ISA)

## Hardware I/O Functions / Alternate Functions (UART, SPI, PWM)

github.com/RIOT-OS/RIOT/blob/master/cpu/fe310/include/vendor/platform.h

GPIO_IOF_EN
GPIO_IOF_SEL

vs.

GPIO_OUTPUT_EN
GPIO_OUTPUT_VAL


## C++

### C++ Standard

Hurra


#### final

class Person final {
[...]
}

class Andreas : Person {
[...]
};

// error: cannot derive from ‘final’ base ‘Person’ in derived type ‘Andreas’

class Person {
virtual void print() final;
}

class Andreas : Person {
virtual void print() final;
};

// error: virtual function ‘virtual void Andreas::print()’
// overriding final function ‘virtual void Person::print()’


#### static vs. const

How to initialize private static members in C++?

class ConstClass {

static int a       = 1;
static const int b = 2;

ConstClass();
};

ConstClass::ConstClass()
{
//
}

int main()
{
//
}

In file included from src/ConstClass.cpp:2:0:
include/ConstClass.h:6:16: error: ISO C++ forbids in-class
initialization of non-const
static member ‘ConstClass::a’
static int a       = 1;

class ConstClass {

static int a;
static const int b = 2;

ConstClass();
};

int ConstClass::a = 1;

ConstClass::ConstClass()
{
//
}


#### const

class Person {
void foo() const;   /* this pointer is const =>
cannot change any member data */
}

class A {
public:
int a, b, c, d;
};

class B {
public:
/* Das übergebene A-Objekt ist innerhalb
der Methode konstant */
void methode(A const& parameter_name);
};


#### Operator Overload

class Person {
operator unsigned() const;   /* cast-operator */
}


#### template

Type Parameters

• Types
• Templates

Non-type Parameters

• Pointers
• References
• Integral constant expressions

In fact, we can create algorithms which evaluate at compile time (from Wikipedia):

template <int N>
struct Factorial
{
enum { value = N * Factorial<N - 1>::value };
};

template <>
struct Factorial<0>
{
enum { value = 1 };
};

// Factorial<4>::value == 24
// Factorial<0>::value == 1
void foo()
{
int x = Factorial<4>::value; // == 24
int y = Factorial<0>::value; // == 1
}


#### constexpr

• A constexpr variable…
• A constexpr function…
• A constexpr constructor…
class Person {
operator unsigned() const;   /* cast-operator */
}


#### decltype

namespace sys::pa {
/* Statt dem statischen Datentyp einfach der Datentyp,
der in CSR::mstatus benutzt wird.

decltype “returns” a type. */
/*
decltype(CSR::mstatus) CSR::mstatus;
}

struct A { double x; };
const A* a;

/* type of y is double (declared type) */
decltype(a->x) y;

/* type of z is const double& (lvalue expression) */
decltype((a->x)) z = y;

/* return type depends on template parameters.
return type can be deduced since C++14 */
template<typename T, typename U>
auto add(T t, U u) -> decltype(t + u)
{
return t+u;
}


### RISC-V Assembly

C++ to ASM linkage in GCC

$cat hardware-register-extern-asm.S | \ c++filt > hardware-register-extern-asm2.S  int getObjId(void); => _ZN8getObjIdEv int getObjId(int); => _ZN8getObjIdEi int getObjId(unsigned int); => _ZN8getObjIdEj 'this is a mangled symbol' (_Z). 'It has 8 characters of user-defined symbol relevance' (8), (v=void, i=int, j=unsigned int...).  _GLOBAL__sub_I__ZN3App3appE: call _Z41__static_initialization_and_destruction_0ii call __static_initialization_and_destruction_0(int, int) [demangled] _Z41__static_initialization_and_destruction_0ii: __static_initialization_and_destruction_0(int, int): [demangled] call _ZN3AppC1Ev call App::App() [demangled] _ZN3App3appE: App::app: [demangled] _ZN3AppC2Ev: (_ZN3AppC1Ev) App::App(): [demangled]  20400480 <_Z41__static_initialization_and_destruction_0ii>: 2040049e: 374d jal 20400440 <_ZN3sys5Msg_1C1Ev> [...] 204004c0 <_GLOBAL__sub_I__ZN3sys5Msg_13msgE>: 204004cc: 3f55 jal 20400480 <_Z41__static_initialization_and_destruction_0ii> 20404160 <_Z41__static_initialization_and_destruction_0ii>: 2040417e: 370d jal 204040a0 <_ZN3AppC1Ev> [...] 20404000 <_GLOBAL__sub_I__ZNK3sys3Mod5Entry4showEPFvvE>: 2040400c: 3f55 jal 20403fc0 <_Z41__static_initialization_and_destruction_0ii> 20403fc0 <_Z41__static_initialization_and_destruction_0ii>: 20403fde: 2089 jal 20404020 <_ZN3sys7BuildIDC1Ev> [...] 204041a0 <_GLOBAL__sub_I__ZN3App3appE>: 204041ac: 3f55 jal 20404160 <_Z41__static_initialization_and_destruction_0ii>  #### Extern vs. Pointer 204040a0: 1101 addi sp,sp,-32 204040a2: ce06 sw ra,28(sp) 204040a4: c62a sw a0,12(sp) 204040a6: 100127b7 lui a5,0x10012 204040aa: 00078793 mv a5,a5 204040ae: 4798 lw a4,8(a5) 204040b0: 004007b7 lui a5,0x400 204040b4: 8f5d or a4,a4,a5 204040b6: 100127b7 lui a5,0x10012 204040ba: 00078793 mv a5,a5 204040be: c798 sw a4,8(a5) 204040c0: 100127b7 lui a5,0x10012 204040c4: 00078793 mv a5,a5 204040c8: 47d8 lw a4,12(a5) 204040ca: 004007b7 lui a5,0x400 204040ce: 8f5d or a4,a4,a5 204040d0: 100127b7 lui a5,0x10012 204040d4: 00078793 mv a5,a5 204040d8: c7d8 sw a4,12(a5) 204040da: 204047b7 lui a5,0x20404 App::App(): .LFB108: addi sp,sp,-32 sw ra,28(sp) sw a0,12(sp) .LBB2: lui a5,%hi(GPIO) addi a5,a5,%lo(GPIO) lw a4,8(a5) li a5,4194304 or a4,a4,a5 lui a5,%hi(GPIO) addi a5,a5,%lo(GPIO) sw a4,8(a5) lui a5,%hi(GPIO) addi a5,a5,%lo(GPIO) lw a4,12(a5) li a5,4194304 or a4,a4,a5 lui a5,%hi(GPIO) addi a5,a5,%lo(GPIO) sw a4,12(a5)  204040a0: 7179 addi sp,sp,-48 204040a2: d606 sw ra,44(sp) 204040a4: d422 sw s0,40(sp) 204040a6: c62a sw a0,12(sp) 204040a8: 100127b7 lui a5,0x10012 204040ac: cc3e sw a5,24(sp) 204040ae: 47e2 lw a5,24(sp) 204040b0: 4798 lw a4,8(a5) 204040b2: 004007b7 lui a5,0x400 204040b6: 8f5d or a4,a4,a5 204040b8: 47e2 lw a5,24(sp) 204040ba: c798 sw a4,8(a5) 204040bc: 47e2 lw a5,24(sp) 204040be: 43d8 lw a4,4(a5) 204040c0: 001007b7 lui a5,0x100 204040c4: 8f5d or a4,a4,a5 204040c6: 47e2 lw a5,24(sp) 204040c8: c3d8 sw a4,4(a5) 204040ca: 47e2 lw a5,24(sp) 204040cc: 47d8 lw a4,12(a5) 204040ce: 004007b7 lui a5,0x400 204040d2: 8f5d or a4,a4,a5 204040d4: 47e2 lw a5,24(sp) 204040d6: c7d8 sw a4,12(a5) 204040d8: 204057b7 lui a5,0x20405 App::App(): .LFB108: addi sp,sp,-48 sw ra,44(sp) sw s0,40(sp) sw a0,12(sp) .LBB4: .LBB5: li a5,268509184 sw a5,24(sp) lw a5,24(sp) lw a4,8(a5) li a5,4194304 or a4,a4,a5 lw a5,24(sp) sw a4,8(a5) lw a5,24(sp) lw a4,4(a5) li a5,1048576 or a4,a4,a5 lw a5,24(sp) sw a4,4(a5) lw a5,24(sp) lw a4,12(a5) li a5,4194304 or a4,a4,a5 lw a5,24(sp) sw a4,12(a5)  ### C++ Optimizing ### x86-64 #### Calling Convention #### Books Guide to Assembly Language Programming in Linux, Teil 1, Sivarama P. Dandamudi #### 0xax.github.io #### gcc / g++ -o file Place output in file file. This applies to whatever sort of output is being produced, whether it be an executable file, an object file, an assembler file or preprocessed C code. -c Compile or assemble the source files, but do not link. The linking stage simply is not done. The ultimate output is in the form of an object file for each source file. -S Stop after the stage of compilation proper; do not assemble. The output is in the form of an assembler code file for each non-assembler input file specified. -E Stop after the preprocessing stage; do not run the compiler proper. The output is in the form of preprocessed source code, which is sent to the standard output. -O0 Reduce compilation time and make debugging produce the expected results. This is the default. -O1 Optimize. Optimizing compilation takes somewhat more time, and a lot more memory for a large function. -O2 Optimize even more. GCC performs nearly all supported optimizations that do not involve a space-speed tradeoff.  #### gdb $ gdb swap
(gdb) b main
(gdb) r

(gdb) set print asm-demangle on

### Disassembly Format
(gdb) set disassembly-flavor att
(gdb) set disassembly-flavor intel
(gdb) show disassembly-flavor

### TUI Commands
(gdb) tui enable
(gdb) tui disable
(gdb) layout asm
(gdb) layout src
(gdb) layout split
(gdb) layout regs
(gdb) focus asm
(gdb) focus src
(gdb) focus regs
(gdb) refresh
(gdb) update

### Assembly
(gdb) ni   (next ASM)
(gdb) si   (step into ASM)

### Sow Registers
(gdb) info reg rdi
rdi            0x7fffffffddb0   140737488346544
(gdb) info reg rdi
rsi            0x7fffffffddb4   140737488346548

### Examine
(gdb) x 0x7fffffffddb0
0x7fffffffddb0: 0x00000001
(gdb) x 0x7fffffffddb4
0x7fffffffddb4: 0x00000002
(gdb) x $rdi 0x7fffffffddb0: 0x00000001 (gdb) x/i$pc  <== Program Counter
=> 0x5555555546ab <swap+1>:     mov    %rsp,%rbp
(gdb) x/i $rip <== Instruction Pointer => 0x5555555546ab <swap+1>: mov %rsp,%rbp  x command, Displays the memory contents at a given address print command, Prints the value of a given expression 10.6 Examining Memory Difference between x and p in gdb? Program Variables Examining the Symbol Table Wikipedia: Symbol Table Wikipedia: .bss Wikipedia: Datensegment x <address> shows the contents of a memory address p <symbol> shows the value stored in a named variable print <symbol> info registers shows registers and what they're doing info frame ### For example: int x; int& f(int& variable) { return variable; } int g(int wert) { return wert; } (gdb) p x$3 = 3

(gdb) x x
0x3:    Cannot access memory at address 0x3

(gdb) x &x
0x555555756134 <x>:     0x0000000000000003

(gdb) p r
No symbol "r" in current context.

(gdb) info address x
Symbol "x" is static storage at address 0x555555756134.

(gdb) info symbol 0x555555756134
x in section .bss of /home/andreas/src/cpp-test/obj/lvalue/lvalue
--> Symbol Table

(gdb) whatis x
type = int

Address               Data
_____________________ ______________________
|          x          |                      |
|    0x555555756134   |               0x3    |
|_____________________|______________________|
|                     |                      |
|        0x3          | Cannot access memory |
|_____________________|______________________|

(gdb) whatis f
type = int &(int &)

(gdb) whatis g
type = int (int)


Stack

how can one see content of stack with gdb

p $sp shows the stack-pointer address x$sp           shows the stack-pointer content
0x7fffffffdcd0: 0x0000007900000000

info frame      show the stack frame info
x/4xg $sp (gdb) p$sp
$6 = (void *) 0x7fffffffdcd0 (gdb) x$sp
0x7fffffffdcd0: 0x0000007900000000

Address / Register    Data
_____________________ _____________________
|                     |                     |
|  Stack Pointer (SP) |    0x7fffffffdcd0   |
|_____________________|_____________________|
|                     |                     |
|        ...          |        ...          |
|_____________________|_____________________|
|                     |                     |
|    0x7fffffffdcd0   |    0x007900000000   |
|_____________________|_____________________|



Attach Source
How to point GDB to your sources
info source command, Dislays information about the current source file

Reading symbols from hardware-register-extern...(no debugging symbols found)...done.
==> no debugging symbols!

(gdb) info sources
No symbol table is loaded.  Use the "file" command.

Before:
CFLAGS=  -O2 -std=c++14 \
After:
CFLAGS=  -O0 -ggdb -std=c++14 \

(gdb) show dir
Source directories searched: $cdir:$cwd

(gdb) dir ../namespace
Source directories searched: /home/andreas/src/tsm-embreal/HiFive1/work/../namespace:$cdir:$cwd

(gdb) info source
Current source file is <unknown>
Compilation directory is /home/andreas/src/tsm-embreal/HiFive1/work
Source language is c++.
Producer is GNU C++14 8.2.0 -march=rv32imac -mabi=ilp32 -ggdb -O0 -std=c++14 -fomit-frame-pointer -fpermissive -fcheck-new -fsized-deallocation -fno-exceptions -fno-use-cxa-atexit -fno-builtin -falign-functions=32 -fno-rtti -fno-unwind-tables.
Compiled with DWARF 2 debugging format.
Does not include preprocessor macro info.

(gdb) list
1	<unknown>: No such file or directory.

(gdb) file ../namespace/hardware-register-extern.cc
"/home/andreas/src/tsm-embreal/HiFive1/work/../namespace/hardware-register-extern.cc": not in executable format: File format not recognized

(gdb) source ../namespace/hardware-register-extern.cc
../namespace/hardware-register-extern.cc:1: Error in sourced command file:
Undefined command: "".  Try "help".

(gdb) help source
Read commands from a file named FILE.


### OpenOCD

Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: no device found
Error: unable to open ftdi device with vid 0403, pid 6010, description 'Dual RS232-HS', serial '*' at bus location '*'

$groups$USER
andreas : andreas adm cdrom sudo dip lpadmin sambashare

$sudo usermod -aG plugdev$USER
$sudo usermod -aG dialout$USER

$groups$USER
andreas : andreas adm dialout cdrom sudo dip plugdev lpadmin sambashare
*******                *******
$sudo xed /etc/udev/rules.d/98-openocd.rules SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="664", GROUP="plugdev" SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="664", GROUP="plugdev"$ sudo udevadm control --reload-rules

$udevadm info -a -p$(udevadm info -q path -n /dev/ttyUSB1)

looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.1/ttyUSB1/tty/ttyUSB1':
KERNEL=="ttyUSB1"
SUBSYSTEM=="tty"
DRIVER==""

looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.1/ttyUSB1':
KERNELS=="ttyUSB1"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
[...]

looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.1':
KERNELS=="1-2:1.1"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
[...]
ATTRS{interface}=="Dual RS232-HS"
[...]

looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2':
KERNELS=="1-2"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
[...]
ATTRS{idProduct}=="6010"
ATTRS{idVendor}=="0403"
[...]


### RIOT

RIOT – The friendly Operating System for the Internet of Things
SiFive HiFive1 RISC-V board
RIOT Wiki: Board%3A-HiFive1 (deprecated)
Creating your first RIOT project
RIOT Wiki: OpenOCD
“Copy this file to your udev configuration directory make sure your vid and pid are covered and adjust the GROUP to some group you are part of.”
RIOT Tutorials for RIOT
RIOT RTOS Port for HiFive1

[  771.168432] usb 1-2: new high-speed USB device number 8 using xhci_hcd
[  771.316930] usb 1-2: New USB device found, idVendor=0403, idProduct=6010
[  771.316935] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  771.316940] usb 1-2: Product: Dual RS232-HS
[  771.316944] usb 1-2: Manufacturer: FTDI
[  771.339667] usbcore: registered new interface driver usbserial_generic
[  771.339683] usbserial: USB Serial support registered for generic
[  771.342827] usbcore: registered new interface driver ftdi_sio
[  771.342844] usbserial: USB Serial support registered for FTDI USB Serial Device
[  771.342934] ftdi_sio 1-2:1.0: FTDI USB Serial Device converter detected
[  771.342974] usb 1-2: Detected FT2232H
[  771.343481] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0
[  771.343628] ftdi_sio 1-2:1.1: FTDI USB Serial Device converter detected
[  771.343660] usb 1-2: Detected FT2232H
[  771.343801] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB1

$sudo apt-get install libmpfr6 Reading package lists... Done Building dependency tree Reading state information... Done libmpfr6 is already the newest version (4.0.1-1). The following packages were automatically installed and are no longer required: linux-headers-4.15.0-32 linux-headers-4.15.0-32-generic linux-image-4.15.0-32-generic linux-modules-4.15.0-32-generic linux-modules-extra-4.15.0-32-generic Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.$ dpkg-query -L libmpfr6
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libmpfr.so.6.0.1
/usr/share
/usr/share/doc
/usr/share/doc/libmpfr6
/usr/share/doc/libmpfr6/AUTHORS
/usr/share/doc/libmpfr6/BUGS
/usr/share/doc/libmpfr6/NEWS.gz
/usr/share/doc/libmpfr6/README
/usr/share/doc/libmpfr6/TODO.gz
/usr/share/doc/libmpfr6/changelog.Debian.gz
/usr/share/doc/libmpfr6/copyright
/usr/lib/x86_64-linux-gnu/libmpfr.so.6

$locate libmpfr /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.6.0.1 /usr/share/doc/libmpfr6 /usr/share/doc/libmpfr6/AUTHORS /usr/share/doc/libmpfr6/BUGS /usr/share/doc/libmpfr6/NEWS.gz /usr/share/doc/libmpfr6/README /usr/share/doc/libmpfr6/TODO.gz /usr/share/doc/libmpfr6/changelog.Debian.gz /usr/share/doc/libmpfr6/copyright /var/lib/dpkg/info/libmpfr6:amd64.list /var/lib/dpkg/info/libmpfr6:amd64.md5sums /var/lib/dpkg/info/libmpfr6:amd64.shlibs /var/lib/dpkg/info/libmpfr6:amd64.symbols /var/lib/dpkg/info/libmpfr6:amd64.triggers  $ ../tools/flash.sh startup-1
make: 'startup-1' is up to date.
Open On-Chip Debugger 0.10.0+dev-00062-g5d9f4864-dirty (2018-08-15-11:40)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 10000 kHz
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: no device found
Error: unable to open ftdi device with vid 0403, pid 6010, description 'Dual RS232-HS', serial '*' at bus location '*'

Warn : Flash driver of onboard_spi_flash does not support free_driver_priv()

$cat /etc/udev/rules.d/98-openocd.rules ACTION!="add|change", GOTO="openocd_rules_end" SUBSYSTEM!="usb|tty|hidraw", GOTO="openocd_rules_end" #Please keep this list sorted by VID:PID #CMSIS-DAP compatible adapters ATTRS{product}=="*CMSIS-DAP*", MODE="666", GROUP="root" LABEL="openocd_rules_end"$ sudo ../tools/flash.sh startup-1
[sudo] password for andreas:
../tools/flash.sh: 6: ../tools/flash.sh: [[: not found
make: 'startup-1' is up to date.
Open On-Chip Debugger 0.10.0+dev-00062-g5d9f4864-dirty (2018-08-15-11:40)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 10000 kHz
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling"
Info : clock speed 10000 kHz
Info : JTAG tap: riscv.cpu tap/device found: 0x10e31913 (mfg: 0x489 (SiFive, Inc.), part: 0x0e31, ver: 0x1)
Info : Examined RISCV core; XLEN=32, misa=0x40001105
Info : Listening on port 3333 for gdb connections
Info : [0] Found 2 triggers
halted at 0x204003b4 due to debug interrupt
Info : Found flash device 'issi is25lp128' (ID 0x0018609d)
cleared protection for sectors 64 through 255 on flash bank 0
Info : JTAG tap: riscv.cpu tap/device found: 0x10e31913 (mfg: 0x489 (SiFive, Inc.), part: 0x0e31, ver: 0x1)
halted at 0x204003b4 due to debug interrupt
** Programming Started **
auto erase enabled
Info : Retrying memory read starting from 0x80000000 with more delays
Info : Retrying memory read starting from 0x80000000 with more delays
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
halted at 0x80000004 due to software breakpoint
wrote 65536 bytes from file startup-1.bin in 0.875611s (73.092 KiB/s)
** Programming Finished **
** Verify Started **
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
Info : Retrying memory read starting from 0x20400000 with more delays
verified 13256 bytes in 0.372329s (34.768 KiB/s)
** Verified OK **
halted at 0x20400004 due to step
Warn : Flash driver of onboard_spi_flash does not support free_driver_priv()


hello

---------------------------------------- ctor
0x20402d00	1	sys/sys.o
0x20400320	0	sys/msg-1.o
0x20402e40	2	startup-1.o

test::Startup::Startup()
GNU:c2b75a723e41aa655b4fbbceabe9df508d33e39d
press key 's' ...

good bye
---------------------------------------- dtor
0x20402e60	0	startup-1.o
test::Startup::~Startup()

make app-anatomy-1 ../tc/bin/riscv32-fhnw-elf-g++ -O2 -std=c++14 -march=rv32imac -mabi=ilp32 -fomit-frame-pointer -fpermissive -fcheck-new -fsized-deallocation -fno-exceptions -fno-use-cxa-atexit -fno-builtin -falign-functions=32 -Wreturn-type -fno-rtti -Wall -fno-unwind-tables -include "sys/sys.h" -I /home/andreas/src/tsm-embreal/HiFive1/namespace -I /home/andreas/src/tsm-embreal/src -DEARLY_INIT -DNO_FLOATS -DNO_LONG_DIV -DSYS_SYS_SHOW_STARTUP -D'INTERFACE(name,info)=' -D'IMPLEMENTATION(name,info)=' -D'VERSION="heads/master-0-g361662c "' /home/andreas/src/tsm-embreal/HiFive1/namespace/app-anatomy-1.cc -o app-anatomy-1 /home/andreas/src/tsm-embreal/resources/gcc-riscv-8.2.0/bin/../lib/gcc/riscv32-fhnw-elf/8.2.0/../../../../riscv32-fhnw-elf/bin/ld: cannot find crt0.o: No such file or directory /home/andreas/src/tsm-embreal/resources/gcc-riscv-8.2.0/bin/../lib/gcc/riscv32-fhnw-elf/8.2.0/../../../../riscv32-fhnw-elf/bin/ld: cannot find -lstdc++ /home/andreas/src/tsm-embreal/resources/gcc-riscv-8.2.0/bin/../lib/gcc/riscv32-fhnw-elf/8.2.0/../../../../riscv32-fhnw-elf/bin/ld: cannot find -lm /home/andreas/src/tsm-embreal/resources/gcc-riscv-8.2.0/bin/../lib/gcc/riscv32-fhnw-elf/8.2.0/../../../../riscv32-fhnw-elf/bin/ld: cannot find -lc /home/andreas/src/tsm-embreal/resources/gcc-riscv-8.2.0/bin/../lib/gcc/riscv32-fhnw-elf/8.2.0/../../../../riscv32-fhnw-elf/bin/ld: cannot find -lgloss collect2: error: ld returned 1 exit status <builtin>: recipe for target 'app-anatomy-1' failed make: *** [app-anatomy-1] Error 1 make clean
rm -f sys/deb/deblow.o sys/boot/big-bang-continued.o sys/msg-1.o sys/board.o sys/abi/abi.o startup-1.o sys/boot/big-bang.o sys/reg/aon.o io/ascii/out.o sys/msg.o math/double.o sys/reg/uart.o sys/reg/gpio.o io/ascii/write.o sys/sys.o sys/deb/deblow0.o util/float-conv.o sys/deb/deb.o sys/hwreg.o startup-1 \
startup-1.map \
startup-1.bin \
tor.o

$make makefile /home/andreas/src/tsm-embreal/tools/makefile.sh ../config/projects.xml > Makefile$ make app-anatomy-1
[...]

k$make cpu-demo g++ -O2 -std=c++14 -c -ocpu-demo.o /home/andreas/src/tsm-embreal/posix/src/cpu-demo.S g++ cpu-demo.o -lm -lpthread -lasound -o cpu-demo /usr/bin/x86_64-linux-gnu-ld: cannot find -lasound collect2: error: ld returned 1 exit status <builtin>: recipe for target 'cpu-demo' failed make: *** [cpu-demo] Error 1$ git pull
$make makefile ../../tools/makefile.sh ../config/projects.xml > Makefile$ make cpu-demo
g++   cpu-demo.o  -lm -lpthread  -o cpu-demo
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function _start':
(.text+0x20): undefined reference to main'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'cpu-demo' failed
make: *** [cpu-demo] Error 1

$make cpu-demo-app g++ -O2 -std=c++14 -I /home/andreas/src/tsm-embreal/posix/src -I /home/andreas/src/tsm-embreal/src -c -o cpu-demo-app.o /home/andreas/src/tsm-embreal/posix/src/cpu-demo-app.cc g++ -O2 -std=c++14 -c -ocpu-demo.o /home/andreas/src/tsm-embreal/posix/src/cpu-demo.S g++ cpu-demo-app.o cpu-demo.o -lm -lpthread -ocpu-demo-app  $ make event-demo-1
../tc/bin/riscv32-fhnw-elf-g++
-O2
-std=c++14
-march=rv32imac
-mabi=ilp32
-fomit-frame-pointer
-fpermissive
-fcheck-new
-fsized-deallocation
-fno-exceptions
-fno-use-cxa-atexit
-fno-builtin
-falign-functions=32
-Wreturn-type
-fno-rtti
-Wall
-fno-unwind-tables
-include "sys/sys.h"
-I tsm-embreal/HiFive1/namespace
-I tsm-embreal/src
-DEARLY_INIT
-DNO_FLOATS
-DNO_LONG_DIV
-DSYS_SYS_SHOW_STARTUP
-D'INTERFACE(name,info)='
-D'IMPLEMENTATION(name,info)='
-D'VERSION="heads/master-0-g0f5b43b-dirty "'
-c
-o sys/deb/deblow.o
tsm-embreal/HiFive1/namespace/sys/deb/deblow.cc

tsm-embreal/HiFive1/namespace/sys/deb/deblow0.S
tsm-embreal/HiFive1/namespace/sys/boot/big-bang.S
tsm-embreal/HiFive1/namespace/sys/msg-1.cc
tsm-embreal/HiFive1/namespace/sys/msg.cc
tsm-embreal/HiFive1/namespace/io/ascii/out.cc
tsm-embreal/HiFive1/namespace/io/ascii/write.cc
tsm-embreal/HiFive1/namespace/util/float-conv.cc
tsm-embreal/HiFive1/namespace/math/double.cc
tsm-embreal/HiFive1/namespace/sys/deb/deb.cc
tsm-embreal/HiFive1/namespace/sys/abi/abi.cc
tsm-embreal/HiFive1/namespace/sys/board.cc
tsm-embreal/HiFive1/namespace/sys/reg/gpio.cc
tsm-embreal/HiFive1/namespace/sys/boot/big-bang-continued.cc
tsm-embreal/HiFive1/namespace/sys/reg/uart.cc
tsm-embreal/HiFive1/namespace/sys/reg/aon.cc
tsm-embreal/HiFive1/namespace/sys/hwreg.cc
tsm-embreal/HiFive1/namespace/sys/sys.cc
tsm-embreal/HiFive1/namespace/event-demo-1.cc
tsm-embreal/HiFive1/namespace/sys/event.cc

../tc/bin/riscv32-fhnw-elf-objdump
-wt
sys/deb/deblow.o
sys/deb/deblow0.o
sys/boot/big-bang.o
sys/msg-1.o
sys/msg.o
io/ascii/out.o
io/ascii/write.o
util/float-conv.o
math/double.o
sys/deb/deb.o
sys/abi/abi.o
sys/board.o
sys/reg/gpio.o
sys/boot/big-bang-continued.o
sys/reg/uart.o
sys/reg/aon.o
sys/hwreg.o
sys/sys.o
event-demo-1.o
sys/event.o
|
tsm-embreal/tools/mod-dep.py -c tor -
|
../tc/bin/riscv32-fhnw-elf-g++
-include "sys/sys.h"
-I tsm-embreal/HiFive1/namespace
-I tsm-embreal/src
-DEARLY_INIT
-DNO_FLOATS
-DNO_LONG_DIV
-DSYS_SYS_SHOW_STARTUP
-D'INTERFACE(name,info)='
-D'IMPLEMENTATION(name,info)='
-D'VERSION="heads/master-0-g0f5b43b-dirty "'
-O2
-std=c++14
-march=rv32imac
-mabi=ilp32
-fomit-frame-pointer
-fpermissive
-fcheck-new
-fsized-deallocation
-fno-exceptions
-fno-use-cxa-atexit
-fno-builtin
-falign-functions=32
-Wreturn-type
-fno-rtti
-Wall
-fno-unwind-tables
-c
-x c++
-o tor.o -

&&
../tc/bin/riscv32-fhnw-elf-ld
--relax
-o event-demo-1
tor.o
sys/deb/deblow.o
sys/deb/deblow0.o
sys/boot/big-bang.o
sys/msg-1.o
sys/msg.o
io/ascii/out.o
io/ascii/write.o
util/float-conv.o
math/double.o
sys/deb/deb.o
sys/abi/abi.o
sys/board.o
sys/reg/gpio.o
sys/boot/big-bang-continued.o
sys/reg/uart.o
sys/reg/aon.o
sys/hwreg.o
sys/sys.o
event-demo-1.o
sys/event.o
-Map=event-demo-1.map
--build-id
-Ltsm-embreal/resources/gcc-riscv-8.2.0/bin/../lib/gcc/riscv32-fhnw-elf/8.2.0/
-lgcc
--script=../config/layout.ld
&&
../tc/bin/riscv32-fhnw-elf-objcopy
--output-target=binary
event-demo-1
event-demo-1.bin

$../tc/bin/riscv32-fhnw-elf-readelf -h event-demo-1 ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: RISC-V Version: 0x1 Entry point address: 0x20400000 Start of program headers: 52 (bytes into file) Start of section headers: 30672 (bytes into file) Flags: 0x1, RVC, soft-float ABI Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 2 Size of section headers: 40 (bytes) Number of section headers: 9 Section header string table index: 8$ ../tc/bin/riscv32-fhnw-elf-readelf -S event-demo-1
There are 9 section headers, starting at offset 0x77d0:

Section Headers:
[Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
[ 0]                   NULL            00000000 000000 000000 00      0   0  0
[ 1] .text             PROGBITS        20400000 001000 00363c 00  AX  0   0 32
[ 2] .data             PROGBITS        80000000 005000 000000 00  WA  0   0  1
[ 3] .sdata            PROGBITS        80000000 005000 000004 00  WA  0   0  4
[ 4] .bss              NOBITS          80000004 005004 0000a8 00  WA  0   0  4
[ 5] .comment          PROGBITS        00000000 005004 000011 01  MS  0   0  1
[ 6] .symtab           SYMTAB          00000000 005018 000ff0 10      7  48  4
[ 7] .strtab           STRTAB          00000000 006008 00178c 00      0   0  1
[ 8] .shstrtab         STRTAB          00000000 007794 00003c 00      0   0  1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
p (processor specific)


# Lumineszenz vs. Wärmestrahlung / Photon / Radiometrie vs. Photometrie

Strahlungsheizung
Infrarotstrahlung
Infrarotstrahler, Rotlichtlampe

Fluoreszenz
Lumineszenz, absorbierten Energie in einen angeregten Zustand versetzt und emittiert Licht
vs.
Wärmestrahlung
Wärme, Q
Wärmestrom, Q-Punkt

Feld (Physik), eine Funktion, die jedem Punkt im Raum eine physikalische Größe zuordnet
Skalarfeld
Vektorfeld

Eine kompakte Fläche wird auch geschlossen genannt, wenn betont werden soll, dass es sich um eine Fläche ohne Rand handelt.
Durch eine geschlossene Fläche fließt so viel Strahlungsleistung, wie die eingeschlossenen Quellen abgeben, falls im eingeschlossenen Raum keine Energie durch Absorption verloren geht.

 Strömungsfeld => Strömungsgeschwindigkeit elektrische Feld => Feldstärke Wärmeleitungsfeld => Wärmestromdichte Strahlungsfeld => Strahlungsstromdichte, Intensität

Lichtquelle, Thermische Strahler vs. Nichtthermische Strahler

Photon
Intensität (Physik)
Strahlungsenergie, Q
Strahlungsleistung / Strahlungsfluss, Q-Punkt
Strahlungsintensität
Wenn das Medium dämpft (absorbiert), verliert die Welle Energie, welche beispielsweise in Wärmeenergie umgewandelt wird.
Mit zunehmender Ausbreitung der Welle im Medium nimmt also deren Intensität exponentiell ab. Der Absorptionskoeffizient μ {\displaystyle \mu } \mu beschreibt dabei die Materialeigenschaften des durchquerten Mediums.

Linienspektrum

# Java Date / Time API

Date
Calendar
GregorianCalendar
SimpleDateFormat

LocalDate
LocalTime
LocalDateTime
ZonedDateTime
Period
Duration
DateTimeFormatter


# Bash Script Loop over Files

find . -maxdepth 1 -iname "*.pdf" | sed "s|^\./||" | while read f
do


### Crack Password

$sudo apt-get install pdfcrack$ pdfcrack -f pdf-encrypted.pdf
$qpdf --decrypt --password=DAS_PASSWORT  #!/usr/bin/env bash rm -rf out/* find . -maxdepth 1 -iname "*.pdf" | sed "s|^\./||" | while read f do qpdf --decrypt$f out/\$f
done


PDF Passwort knacken/herausfinden

Adobe Digital Editions (ADE) v1.7.1
Adobe Digital Editions (ADE) v2.0.1
How to Remove DRM from ePUB & PDF on Adobe Digital Editions ? (not proofed)
3 methods for removing DRM from ePUB on Adobe Digital Editions
github.com/apprenticeharper/DeDRM_tools, DeDRM tools for ebooks
Apprentice Alf’s Blog, Everything you ever wanted to know about DRM and ebooks, but were afraid to ask