feat (report): Progress on report.
This commit is contained in:
parent
36806f9af5
commit
5d40900390
7 changed files with 3019 additions and 189 deletions
22
LICENSE.txt
22
LICENSE.txt
|
|
@ -1,3 +1,25 @@
|
||||||
|
License Exception for "alphanumeric.csl"
|
||||||
|
|
||||||
|
The "alphanumeric.csl" file located in the "doc/" directory of this project
|
||||||
|
is sourced from an external repository and is subject to different
|
||||||
|
licensing terms. Specifically, this file is released under the CREATIVE
|
||||||
|
COMMONS ATTRIBUTION-SHAREALIKE 3.0 UNPORTED license.
|
||||||
|
|
||||||
|
Conditions for Use:
|
||||||
|
|
||||||
|
* Attribution: Any software using the "alphanumeric.csl" file must
|
||||||
|
include a clear mention of the CSL project and a link to
|
||||||
|
[https://citationstyles.org/].
|
||||||
|
* Redistribution: When redistributing the "alphanumeric.csl" file,
|
||||||
|
the listings of authors and contributors in the style metadata must
|
||||||
|
be preserved as is.
|
||||||
|
|
||||||
|
This exception applies solely to the "alphanumeric.csl" file and does
|
||||||
|
not affect the licensing of the rest of the project, which remains under
|
||||||
|
the CeCILL FREE SOFTWARE LICENSE AGREEMENT, Version 2.1 dated 2013-06-21,
|
||||||
|
included below.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CeCILL FREE SOFTWARE LICENSE AGREEMENT
|
CeCILL FREE SOFTWARE LICENSE AGREEMENT
|
||||||
|
|
||||||
|
|
|
||||||
361
doc/alphanumeric.csl
Normal file
361
doc/alphanumeric.csl
Normal file
|
|
@ -0,0 +1,361 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="de-DE">
|
||||||
|
<info>
|
||||||
|
<title>DIN 1505-2 (alphanumeric, Deutsch) - standard superseded by ISO-690</title>
|
||||||
|
<id>http://www.zotero.org/styles/din-1505-2-alphanumeric</id>
|
||||||
|
<link href="http://www.zotero.org/styles/din-1505-2-alphanumeric" rel="self"/>
|
||||||
|
<link href="http://www.angst-vor-dem-leeren-blatt.de/docs/download/zitierrichtlinie_din_1505.pdf" rel="documentation"/>
|
||||||
|
<link href="http://www.bui.haw-hamburg.de/fileadmin/redaktion/diplom/Lorenzen__litverz.pdf" rel="documentation"/>
|
||||||
|
<link href="http://de.wikipedia.org/wiki/DIN_1505-2" rel="documentation"/>
|
||||||
|
<link href="http://forums.zotero.org/discussion/5239/1/first-letter-of-author-as-citation/" rel="documentation"/>
|
||||||
|
<author>
|
||||||
|
<name>Sven Rothe</name>
|
||||||
|
<email>mmoole@googlemail.com</email>
|
||||||
|
</author>
|
||||||
|
<contributor>
|
||||||
|
<name>Julian Onions</name>
|
||||||
|
<email>julian.onions@gmail.com</email>
|
||||||
|
</contributor>
|
||||||
|
<contributor>
|
||||||
|
<name>Sebastian Karcher</name>
|
||||||
|
</contributor>
|
||||||
|
<category citation-format="label"/>
|
||||||
|
<category field="generic-base"/>
|
||||||
|
<summary>Style following DIN 1505-2, using the alphanumeric citation keys, for other media types on additional standards
|
||||||
|
Hinweise zur Benutzung:
|
||||||
|
* Zitieren von Gesetzen:
|
||||||
|
- hier müssen manuell §, Abs und S. zur Seitenangabe beim Zitieren eingetragen werden
|
||||||
|
- im Kurzbeleg wird der Kurztitel verwendet, dafür keine Autoren eintragen!
|
||||||
|
- als Jahresangabe wird 'Datum des Inkrafttretens' herangezogen, Verwenden nur bei Verweis auf nicht z.Z. gültige Gesetze, z.B. (idF. v. 12.12.1972)
|
||||||
|
* Zitieren von Normen und Standards - nicht vollständig nach DIN 1505
|
||||||
|
- Nutzen Sie den Typ 'Bericht' - als Abhilfe, da es keinen Typ 'Standard' gibt.
|
||||||
|
- als Autor die Kurzbezeichnung inkl. Nummer und Jahr eingeben (z.B. VDI 2222-1997), Vorname leer, Jahr leer
|
||||||
|
- als Titel den ausführlichen Titel bei Bedarf (z.B. VDI Richtlinie 2222 Blatt 1 - Konstruktionsmethodik - Methodisches Entwickeln von Lösungsprinzipien)</summary>
|
||||||
|
<!-- This is just a beginning to try to have a DIN 1505 citation style,
|
||||||
|
Feel free to send me any comments, suggestions etc...
|
||||||
|
todo:
|
||||||
|
* basic media types (book, journal article, etc..)
|
||||||
|
* more media types (according DINxxx) audio video etc...
|
||||||
|
* fine tuning
|
||||||
|
* correcting errors
|
||||||
|
known bugs, help appreciated
|
||||||
|
* Abbreviations (Mitarb.) & (Hrsg. der Reihe) are missing (contributor, seriesEditor labels)
|
||||||
|
* "contributor" is not valid as a name variable , nevertheless it works but doesnt validate!
|
||||||
|
* author etc. first names should not be abbreviated
|
||||||
|
* reviewed author seems to be not available as variable (newspaper article)
|
||||||
|
* thesis type does notoffer a PLACE or FACULTY as variable!
|
||||||
|
how to show the place if it is not included in the University title!?!?
|
||||||
|
* thesis type: publisher (university), genre (type) dont seem to get through!?
|
||||||
|
-->
|
||||||
|
<!-- useful things:
|
||||||
|
non breaking space:  
|
||||||
|
narrow no break space: uni202F /   - but this is not supported widely!
|
||||||
|
em dash: —
|
||||||
|
space:  
|
||||||
|
tab: 	
|
||||||
|
|
||||||
|
-->
|
||||||
|
<updated>2012-09-27T22:06:38+00:00</updated>
|
||||||
|
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
|
||||||
|
</info>
|
||||||
|
<locale xml:lang="de">
|
||||||
|
<terms>
|
||||||
|
<term name="anonymous" form="short">o. A.</term>
|
||||||
|
<term name="no date" form="short">o. J.</term>
|
||||||
|
<term name="collection-editor" form="short">Hrsg.</term>
|
||||||
|
<term name="retrieved">abgerufen am</term>
|
||||||
|
<term name="composer" form="short">Komp.</term>
|
||||||
|
<term name="composer" form="long">Komponist</term>
|
||||||
|
</terms>
|
||||||
|
</locale>
|
||||||
|
<macro name="author">
|
||||||
|
<names variable="author" delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " delimiter=" ; " delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<label form="short" prefix=" (" suffix=")"/>
|
||||||
|
</names>
|
||||||
|
</macro>
|
||||||
|
<macro name="author-container">
|
||||||
|
<names variable="container-author" delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter=" ; " delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<label form="short" prefix=" (" suffix=")"/>
|
||||||
|
</names>
|
||||||
|
</macro>
|
||||||
|
<macro name="editor">
|
||||||
|
<names variable="editor" delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter=" ; " delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<label form="short" prefix=" (" suffix=")"/>
|
||||||
|
<!-- needed: Label should appear as suffix to EVERY name...!-->
|
||||||
|
</names>
|
||||||
|
</macro>
|
||||||
|
<macro name="editor-collection">
|
||||||
|
<names variable="collection-editor" delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter=" ; " delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<label form="short" prefix=" (" suffix=")"/>
|
||||||
|
<!-- needed: Label should appear as suffix to EVERY name...!-->
|
||||||
|
</names>
|
||||||
|
</macro>
|
||||||
|
<macro name="composer">
|
||||||
|
<names variable="composer" delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " delimiter=" ; " delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<label form="long" prefix=" (" suffix=")"/>
|
||||||
|
<!-- needed: Label should appear as suffix to EVERY name...!-->
|
||||||
|
</names>
|
||||||
|
</macro>
|
||||||
|
<!-- <macro name="contributor">
|
||||||
|
<names variable=" " delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter=" ; "
|
||||||
|
delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<label form="short" prefix=" (" suffix=")"/>
|
||||||
|
</names>
|
||||||
|
</macro>-->
|
||||||
|
<macro name="translator">
|
||||||
|
<names variable="translator" delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter=" ; " delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<label form="short" prefix=" (" suffix=")"/>
|
||||||
|
<!-- needed: Label should appear as suffix to EVERY name...!-->
|
||||||
|
</names>
|
||||||
|
</macro>
|
||||||
|
<macro name="recipient">
|
||||||
|
<names variable="recipient" delimiter=" ; ">
|
||||||
|
<name name-as-sort-order="all" sort-separator=", " initialize-with=". " delimiter=" ; " delimiter-precedes-last="always" font-variant="small-caps"/>
|
||||||
|
<!--<label form="long" prefix=" (" suffix=")"/>-->
|
||||||
|
<!-- needed: Label should appear as suffix to EVERY name...!-->
|
||||||
|
</names>
|
||||||
|
</macro>
|
||||||
|
<macro name="access">
|
||||||
|
<group>
|
||||||
|
<text term="retrieved" suffix=" "/>
|
||||||
|
<date variable="accessed">
|
||||||
|
<date-part name="year" form="long" suffix="-"/>
|
||||||
|
<date-part name="month" form="numeric-leading-zeros" suffix="-"/>
|
||||||
|
<date-part name="day" form="numeric-leading-zeros"/>
|
||||||
|
</date>
|
||||||
|
<!--<date variable="accessed" form="numeric" date-parts="year-month-day"/> // dd.mm.yyy -->
|
||||||
|
</group>
|
||||||
|
</macro>
|
||||||
|
<macro name="title">
|
||||||
|
<choose>
|
||||||
|
<if type="bill legislation" match="any">
|
||||||
|
<group delimiter=" — ">
|
||||||
|
<text variable="title-short" font-style="normal"/>
|
||||||
|
<text variable="title"/>
|
||||||
|
</group>
|
||||||
|
</if>
|
||||||
|
<else-if type="book graphic legal_case motion_picture report song" match="any">
|
||||||
|
<text variable="title" font-style="italic"/>
|
||||||
|
</else-if>
|
||||||
|
<else>
|
||||||
|
<text variable="title"/>
|
||||||
|
</else>
|
||||||
|
</choose>
|
||||||
|
</macro>
|
||||||
|
<macro name="genre">
|
||||||
|
<choose>
|
||||||
|
<if type="report thesis manuscript map" match="any">
|
||||||
|
<group>
|
||||||
|
<text variable="genre"/>
|
||||||
|
<!--<text term="number" form="short" suffix=" "/>-->
|
||||||
|
<text variable="number" prefix=" Nr. "/>
|
||||||
|
</group>
|
||||||
|
</if>
|
||||||
|
</choose>
|
||||||
|
</macro>
|
||||||
|
<macro name="volumes">
|
||||||
|
<group delimiter=" ">
|
||||||
|
<text term="volume" form="short" plural="false"/>
|
||||||
|
<number variable="volume" form="numeric"/>
|
||||||
|
<number variable="number-of-volumes" form="numeric" prefix="v. "/>
|
||||||
|
</group>
|
||||||
|
</macro>
|
||||||
|
<macro name="edition">
|
||||||
|
<choose>
|
||||||
|
<if is-numeric="edition">
|
||||||
|
<group delimiter=" ">
|
||||||
|
<number variable="edition" form="numeric" suffix=". "/>
|
||||||
|
<text term="edition" form="short" plural="false"/>
|
||||||
|
</group>
|
||||||
|
</if>
|
||||||
|
<else>
|
||||||
|
<text variable="edition" suffix="."/>
|
||||||
|
</else>
|
||||||
|
</choose>
|
||||||
|
</macro>
|
||||||
|
<macro name="pages">
|
||||||
|
<choose>
|
||||||
|
<if type="chapter paper-conference article-journal" match="any">
|
||||||
|
<label variable="page" form="short" suffix=" "/>
|
||||||
|
<text variable="page"/>
|
||||||
|
</if>
|
||||||
|
</choose>
|
||||||
|
</macro>
|
||||||
|
<macro name="dimensions">
|
||||||
|
<group>
|
||||||
|
<text variable="dimensions"/>
|
||||||
|
</group>
|
||||||
|
</macro>
|
||||||
|
<macro name="medium">
|
||||||
|
<group>
|
||||||
|
<text variable="medium"/>
|
||||||
|
</group>
|
||||||
|
</macro>
|
||||||
|
<macro name="scale">
|
||||||
|
<group>
|
||||||
|
<text term="scale"/>
|
||||||
|
<text prefix=" " variable="scale"/>
|
||||||
|
</group>
|
||||||
|
</macro>
|
||||||
|
<macro name="recipient-show">
|
||||||
|
<choose>
|
||||||
|
<if type="personal_communication">
|
||||||
|
<choose>
|
||||||
|
<if variable="genre">
|
||||||
|
<text variable="genre" text-case="capitalize-first"/>
|
||||||
|
</if>
|
||||||
|
<else>
|
||||||
|
<text term="letter" text-case="capitalize-first"/>
|
||||||
|
</else>
|
||||||
|
</choose>
|
||||||
|
</if>
|
||||||
|
</choose>
|
||||||
|
<text macro="recipient" prefix=", "/>
|
||||||
|
</macro>
|
||||||
|
<citation et-al-min="3" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="false" disambiguate-add-givenname="false" collapse="year">
|
||||||
|
<sort>
|
||||||
|
<key variable="citation-label"/>
|
||||||
|
</sort>
|
||||||
|
<layout prefix="[" suffix="]" delimiter="; ">
|
||||||
|
<group delimiter=", ">
|
||||||
|
<text variable="citation-label"/>
|
||||||
|
<group>
|
||||||
|
<label variable="locator" form="short"/>
|
||||||
|
<text variable="locator"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</layout>
|
||||||
|
</citation>
|
||||||
|
<bibliography et-al-min="9" et-al-use-first="8" second-field-align="flush">
|
||||||
|
<sort>
|
||||||
|
<key variable="citation-label"/>
|
||||||
|
</sort>
|
||||||
|
<layout>
|
||||||
|
<text variable="citation-label" prefix="[" suffix="] "/>
|
||||||
|
<group delimiter=" ; " suffix=":">
|
||||||
|
<text macro="author"/>
|
||||||
|
<choose>
|
||||||
|
<if type="bill book graphic legal_case legislation manuscript map motion_picture report song thesis webpage" match="any">
|
||||||
|
<!-- except type="chapter article " etc.... -->
|
||||||
|
<text macro="editor"/>
|
||||||
|
<text macro="editor-collection"/>
|
||||||
|
<text macro="composer"/>
|
||||||
|
</if>
|
||||||
|
</choose>
|
||||||
|
<!-- <text macro="contributor"/> -->
|
||||||
|
<text macro="translator"/>
|
||||||
|
</group>
|
||||||
|
<choose>
|
||||||
|
<!-- Tabelle 1 aus litverz.ps -->
|
||||||
|
<if type="bill book broadcast graphic legal_case legislation manuscript map motion_picture report song" match="any">
|
||||||
|
<text prefix=" " macro="title"/>
|
||||||
|
<text prefix=", " variable="collection-title" font-style="italic"/>
|
||||||
|
<!--Reihe-->
|
||||||
|
<text prefix=" (" macro="genre" suffix=")"/>
|
||||||
|
<text prefix=". " macro="volumes"/>
|
||||||
|
<text prefix=". " macro="edition"/>
|
||||||
|
<text prefix=". " macro="medium"/>
|
||||||
|
<text prefix=". " macro="dimensions"/>
|
||||||
|
<text prefix=". " variable="publisher-place"/>
|
||||||
|
<text prefix=" : " variable="publisher"/>
|
||||||
|
<date prefix=", " variable="issued" form="numeric" date-parts="year"/>
|
||||||
|
<!-- " (1. Gesamttitel mit Zählung)"
|
||||||
|
" (2. Gesamttitel mit Zählung)" -->
|
||||||
|
<text prefix=" – " macro="scale"/>
|
||||||
|
<text prefix=". — " variable="note"/>
|
||||||
|
<text prefix=" — ISBN " variable="ISBN"/>
|
||||||
|
</if>
|
||||||
|
<!-- Tabelle 3 aus litverz.ps -->
|
||||||
|
<else-if type="chapter paper-conference" match="any">
|
||||||
|
<text prefix=" " macro="title" suffix="."/>
|
||||||
|
<text prefix=". " term="in" text-case="capitalize-all" suffix=": "/>
|
||||||
|
<!-- verfahre nach Tabelle 1... -->
|
||||||
|
<group delimiter=" ; " suffix=": ">
|
||||||
|
<text macro="author-container"/>
|
||||||
|
<text macro="editor"/>
|
||||||
|
<text macro="editor-collection"/>
|
||||||
|
</group>
|
||||||
|
<text variable="container-title" font-style="italic"/>
|
||||||
|
<text prefix=", " variable="collection-title" font-style="italic"/>
|
||||||
|
<!-- Reihe -->
|
||||||
|
<text prefix=". " macro="volumes"/>
|
||||||
|
<!-- <text prefix=" : " variable="title of volumes"/> what is this? -->
|
||||||
|
<text prefix=". " macro="edition"/>
|
||||||
|
<text prefix=". " variable="publisher-place"/>
|
||||||
|
<text prefix=" : " variable="publisher"/>
|
||||||
|
<date prefix=", " variable="issued" form="numeric" date-parts="year"/>
|
||||||
|
<!-- " (1. Gesamttitel mit Zählung)"
|
||||||
|
" (2. Gesamttitel mit Zählung)" -->
|
||||||
|
<text prefix=". — " variable="note"/>
|
||||||
|
<text prefix=" — ISBN " variable="ISBN"/>
|
||||||
|
<text prefix=", " macro="pages"/>
|
||||||
|
</else-if>
|
||||||
|
<!-- Tabelle 5 aus litverz.ps - Hochschulschriften
|
||||||
|
(Diplomarbeiten, Dissertationen, Master-A., unverö. Studienarbeiten -->
|
||||||
|
<else-if type="thesis" match="any">
|
||||||
|
<text prefix=" " macro="title" font-style="italic"/>
|
||||||
|
<text prefix=". " macro="edition"/>
|
||||||
|
<text prefix=". " variable="publisher-place"/>
|
||||||
|
<text prefix=", " variable="publisher" form="long"/>
|
||||||
|
<!-- <text prefix=", " variable="faculty"/> -->
|
||||||
|
<text prefix=", " macro="genre"/>
|
||||||
|
<date prefix=", " variable="issued" form="numeric" date-parts="year"/>
|
||||||
|
<text prefix=". — " variable="note"/>
|
||||||
|
</else-if>
|
||||||
|
<else-if type="webpage post post-weblog" match="any">
|
||||||
|
<text prefix=" " macro="title" suffix=". " font-style="italic"/>
|
||||||
|
<text prefix="URL " variable="URL"/>
|
||||||
|
<text prefix=". - " macro="access"/>
|
||||||
|
<text prefix=". — " variable="container-title"/>
|
||||||
|
<text prefix=". — " variable="note"/>
|
||||||
|
</else-if>
|
||||||
|
<!-- Tabelle 2 aus litverz.ps UND -->
|
||||||
|
<!-- Tabelle 4 aus litverz.ps - Schriften von Tagungen, Konferenzen, Symposien, ...-->
|
||||||
|
<else-if type="article article-journal article-magazine article-newspaper" match="any">
|
||||||
|
<text prefix=" " variable="title"/>
|
||||||
|
<!-- " : Zusatz zum Sachtitel"
|
||||||
|
". Angabe des Teils"
|
||||||
|
" (Gesamttitelangabe)" -->
|
||||||
|
<group>
|
||||||
|
<text prefix=". " term="in" text-case="capitalize-first" suffix=": "/>
|
||||||
|
<text macro="editor" suffix=" "/>
|
||||||
|
<text variable="container-title" font-style="italic"/>
|
||||||
|
<text prefix=", " variable="collection-title" font-style="italic" suffix="."/>
|
||||||
|
<!--", unterreihe der zeitschrift/zeitung" -->
|
||||||
|
</group>
|
||||||
|
<text prefix=" " macro="volumes"/>
|
||||||
|
<text prefix=". " variable="publisher-place"/>
|
||||||
|
<text prefix=", " variable="publisher" form="long"/>
|
||||||
|
<date prefix=" (" suffix=")" variable="issued" form="numeric" date-parts="year"/>
|
||||||
|
<text prefix=", Nr. " variable="issue"/>
|
||||||
|
<text prefix=", " macro="pages"/>
|
||||||
|
<text prefix=". — " variable="note"/>
|
||||||
|
<text prefix=" — ISBN " variable="ISBN"/>
|
||||||
|
</else-if>
|
||||||
|
<!-- keiner der oben genannten fälle -->
|
||||||
|
<else>
|
||||||
|
<group suffix=".">
|
||||||
|
<text prefix=" " macro="title"/>
|
||||||
|
<text prefix=", " macro="editor"/>
|
||||||
|
<text prefix=". " macro="recipient-show"/>
|
||||||
|
</group>
|
||||||
|
<group prefix=" " suffix=".">
|
||||||
|
<text variable="container-title" font-style="italic"/>
|
||||||
|
<group prefix=", ">
|
||||||
|
<text variable="volume" font-style="italic"/>
|
||||||
|
<text variable="issue" prefix="(" suffix=")"/>
|
||||||
|
</group>
|
||||||
|
<text prefix=", " macro="pages"/>
|
||||||
|
</group>
|
||||||
|
</else>
|
||||||
|
</choose>
|
||||||
|
</layout>
|
||||||
|
</bibliography>
|
||||||
|
</style>
|
||||||
1001
doc/data/sincos_discrete.csv
Normal file
1001
doc/data/sincos_discrete.csv
Normal file
File diff suppressed because it is too large
Load diff
228
doc/remarques.typ
Normal file
228
doc/remarques.typ
Normal file
|
|
@ -0,0 +1,228 @@
|
||||||
|
La phrase "it is less computationally intensive... the compiler". est mal dite;
|
||||||
|
tu peux dire que c'est la methode classique, par exemple, implementee pour
|
||||||
|
simulink et aussi Zelus.
|
||||||
|
|
||||||
|
Rmq:
|
||||||
|
|
||||||
|
- Les methodes numeriques (centralisees) les premieres ont ete faites
|
||||||
|
pour resoudre un probleme initial. dx/dt = f (x(t)) t et x(0) = x0 ou x est un
|
||||||
|
vecteur.
|
||||||
|
|
||||||
|
- La "simulation distribuee" (cad faisant intervenir plusieurs solveurs)
|
||||||
|
existe aussi mais pose d'autres problemes: efficacite, convergence. Elle est
|
||||||
|
plus difficile a implementer.
|
||||||
|
|
||||||
|
- Sundials CVODE a une methode centralisee mais avec une implementation de
|
||||||
|
manipulation des vecteurs qui peut etre parallele, cad que tous les calculs de
|
||||||
|
vecteur/matrice peuvent se faire en parallele. On ne l'utilise pas dans Zelus.
|
||||||
|
|
||||||
|
p2.
|
||||||
|
"we cannot necessarily use "pre"...": a mon avis, le lecteur ne peut pas
|
||||||
|
comprendre ce que tu ecris ici. A mon avis, tu peux dire ce qui marche (si je ne
|
||||||
|
me trompe pas, pouvoir internaliser le solveur au modele et donc le composer
|
||||||
|
avec un observateur qui contient son propre solveur) et ce qui est a faire (si
|
||||||
|
je comprends, pouvoir ecrire directement assert dans le code et la compilation
|
||||||
|
pour pouvoir co-simuler le modele et ses differents observateurs/assertions.
|
||||||
|
Pour le "pre", c'est un point que tu peux mentionner plus loin dans le rapport
|
||||||
|
lorsque le lecteur a plus de contexte et de matiere sur ce que tu as fait.
|
||||||
|
|
||||||
|
Il n'y a pas de numero en bas des pages dans ton texte. Il en faut. Impossible
|
||||||
|
de savoir ou on est sinon.
|
||||||
|
|
||||||
|
section 2. Tu parles de streams (Nat -> V) alors que tu donnes une semantique
|
||||||
|
avec des etats. C'est bizarre. Tu ecris pre(s) alors que l'on ne sait pas ce que
|
||||||
|
c'est. le
|
||||||
|
|
||||||
|
```ocaml
|
||||||
|
let rec (o, s) = M.f_step(i, M.s0 -> pre(s))
|
||||||
|
```
|
||||||
|
|
||||||
|
n'est pas du caml valide.
|
||||||
|
|
||||||
|
Que veux-tu dire ? Quel est le type de Simulate(M) ? Je pensais (cf. page
|
||||||
|
d'apres) que tu voudrais ecrire:
|
||||||
|
|
||||||
|
```ocaml
|
||||||
|
simulate(M): list(I) -> list(O)
|
||||||
|
```
|
||||||
|
|
||||||
|
Le listing 1 ne correspond pas a la page precedente (ou l'inverse). Pourquoi ?
|
||||||
|
|
||||||
|
Page d'apres (5 ?).
|
||||||
|
|
||||||
|
Je ne suis pas fan de l'exemple sincos_discrete() tel que tu l'as ecrit car il
|
||||||
|
diverge. Il laisse soupconner que l'on ne peut pas ecrire de schemas numeriques
|
||||||
|
avec des streams. C'est faux, en general.
|
||||||
|
|
||||||
|
En somme, le code listing 2 est un mauvais programme. Il y a une raison
|
||||||
|
mathematique liee a l'analyse des poles; je te montrerai a mon retour. Si tu
|
||||||
|
veux garder cet exemple de sin/cos, il faut mettre deux integrateurs differents,
|
||||||
|
un forward et un backward.
|
||||||
|
|
||||||
|
Ou alors, il faut faire un discours (plus long) pour expliquer pourquoi c'est
|
||||||
|
mieux d'ecrire la forme a temps continu, que justement, elle permet de ne pas se
|
||||||
|
casser la tete pour savoir ou et quand mettre un pre. Mais c'est un peu
|
||||||
|
orthogonal a ce que tu veux raconter.
|
||||||
|
|
||||||
|
Discrete models -> Discrete-time models.
|
||||||
|
Continuous models -> Continuous-time models.
|
||||||
|
|
||||||
|
Tu pourras ensuite dire que tu confonds les deux.
|
||||||
|
|
||||||
|
2.2 la raison de la divergence n'est pas la. Si tu prends un schema backward +
|
||||||
|
forward, ca ne diverge pas. Par contre, si tu prends Van der Pol en discret, pas
|
||||||
|
fixe, avec un pas trop petit ou trop petit, tu tombes sur nan. Regarde. J'avais
|
||||||
|
fait l'exemple (regarde sur le depot; ou refais le).
|
||||||
|
|
||||||
|
Rmq: sin/cos n'est pas un super exemple pour justifier l'interet de Zelus (ou du
|
||||||
|
temps continu en general) car ce systeme est lineaire. Un schema numerique pas
|
||||||
|
fixe (donc programmable directement en synchrone) marche bien. C'est plutot
|
||||||
|
quand la dynamique est compliquee, non lineaire, qu'il te faut un schema
|
||||||
|
numerique plus elabore et que l'expression directe d'un modele a temps continu
|
||||||
|
se justifie. La modelisation d'evenement en etat (zero-crossing) le justifie
|
||||||
|
aussi. Le cas classique, c'est le modele bang-bang. Tu veux detecter les
|
||||||
|
instants ou la temperature passe un seuil. Avec un modele de temps pas fixe, tu
|
||||||
|
ne peux pas.
|
||||||
|
|
||||||
|
avant de donner CNode(...), dit ce qu'est le probleme.
|
||||||
|
Qu'est ce qu'un modele M ?
|
||||||
|
|
||||||
|
```ocaml
|
||||||
|
model (i) = o where
|
||||||
|
der s = f_der i s
|
||||||
|
der o = f_out i s
|
||||||
|
```
|
||||||
|
|
||||||
|
2.3. Tu n'as pas dit/defini ce qu'etait un "initial value problem". Le faire
|
||||||
|
(sinon, on ne comprends pas).
|
||||||
|
|
||||||
|
"the integr node from Listing 2 is another example of a numerical solver
|
||||||
|
(albeit not a very good one)"
|
||||||
|
|
||||||
|
A mon avis, inutile. Que veux-tu dire que tu n'as pas deja dit (on peut calculer
|
||||||
|
une approximation de `(der(x)/dt)(t)` a des instants `n * h` (`n in Nat`) par
|
||||||
|
`(x - pre(x))/h`?
|
||||||
|
|
||||||
|
|
||||||
|
"Of particular interest is the fact that numerical ODE solvers compute
|
||||||
|
approximations sequentially. "
|
||||||
|
|
||||||
|
Ca depend. Les solveurs a memoire (dits "multi-pas"). Les solveurs sans memoire
|
||||||
|
tels que RK, non. A mon avis, tu peux commencer par exempliquer ce que calcule
|
||||||
|
un solveur: etant donne le IVP, l'objectif est de calculer une solution
|
||||||
|
[0, tmax] -> V. En pratique, il ne calcule pas toute la solution. Il calcule une
|
||||||
|
suite de solution pour [0, h0][h0, h1][h1, h2], etc. Relis l'article de
|
||||||
|
Chapoutot et al., de memoire, c'est tres bien explique. Sinon, il y a les livres
|
||||||
|
jaunes dans l'etagere de mon bureau.
|
||||||
|
|
||||||
|
"This sequential process gives way to a synchronous interpretation of an ODE
|
||||||
|
solver as a discrete node."
|
||||||
|
|
||||||
|
Qu'est-ce qu'un "discrete node" ?
|
||||||
|
|
||||||
|
IVP(Y, Y'). Aurait du arriver bien plus tot.
|
||||||
|
|
||||||
|
dy /dt (t) = f t (y(t))
|
||||||
|
y(0) = y0
|
||||||
|
|
||||||
|
donner l'horizon de temps (par defaut, +infty ?).
|
||||||
|
|
||||||
|
Je prendrais une autre lettre que "s". (on note s pour "state" en general). "o",
|
||||||
|
pour "output" ?
|
||||||
|
|
||||||
|
La notation pointee est un peu troublante (en math, on la confond avec la
|
||||||
|
multiplication. Utiliser une police ad-hoc pour h et u de sorte que s_0.u ne
|
||||||
|
soit pas ambigu.
|
||||||
|
|
||||||
|
mets des numeros de ligne dans ton texte stp. Il y a un style latex pour ca. Ou
|
||||||
|
au moins des no. de page.
|
||||||
|
|
||||||
|
"The ODE solver does not itself introduce discontinuities; the only
|
||||||
|
discontinuities in the system are those introduced by the input signal."
|
||||||
|
|
||||||
|
Avant de dire cela, tu ne parles par d'entrees. Pour le moment, ton systeme
|
||||||
|
n'est pas "hybride". C'est une ODE. Tu ne donnes pas d'hypotheses sur f. En
|
||||||
|
faut-il ? Lesquelles ?
|
||||||
|
|
||||||
|
"The simulation of a continuous-time system with an ODE solver is now itself a
|
||||||
|
synchronous node:"
|
||||||
|
|
||||||
|
c'est un point de vue. Puisque la simulation d'un modele a temps continu calcule
|
||||||
|
une suite de solutions approchees, ne pourrait-on pas la voir elle meme comme
|
||||||
|
une machine synchrone qui...
|
||||||
|
|
||||||
|
page suivante.
|
||||||
|
|
||||||
|
Plutot que Signal(V), j'utiliserais un autre nom. Tu as deja un langage qui
|
||||||
|
manipule des signaux, non ?
|
||||||
|
|
||||||
|
Superdense(V) ? En reference aux travaux de Pnueli et al. Puis Edward Lee et al.
|
||||||
|
Puis Caspi et al.
|
||||||
|
|
||||||
|
Superdence(V) = R+ -> Nat -> V avec, a cote, une fonction qui pour chaque t in
|
||||||
|
R+, donne le nombre de sauts (relire les articles; j'ai oublie le nom de cette
|
||||||
|
fonction). step(t) in Nat.
|
||||||
|
|
||||||
|
est-ce tres different de
|
||||||
|
|
||||||
|
Nat -> R+ -> V avec a cote, une fonction qui indique le temps qui s'ecoule pour
|
||||||
|
chaque n in Nat ?
|
||||||
|
|
||||||
|
Dans un des articles de Edward Lee, il explique le type des signaux pour le
|
||||||
|
temps continu. Regarde son livre (vert) sur mon etagere.
|
||||||
|
|
||||||
|
Le texte de cette page (8 ?) est un peu confus.
|
||||||
|
|
||||||
|
est-ce que les bouts de fonctions sont collees les uns aux autres ?
|
||||||
|
|
||||||
|
none a le sens de "not yet" ? Comment recolles-tu les morceaux ?
|
||||||
|
|
||||||
|
(h0, u0) (h1, u1) ... (hn, un)
|
||||||
|
|
||||||
|
est-ce equivalent a :
|
||||||
|
|
||||||
|
(h0, u0) none (h1, u1) none none (hn, un) ?
|
||||||
|
|
||||||
|
A ce stade, tu n'as pas dit ce qu'etait $italic("CNode")(I, O, S_M, S'_M)$. A
|
||||||
|
quoi ca ressemble ?
|
||||||
|
|
||||||
|
Les elements du listing 4 doivent etre donnes dans le texte en maths. Le code
|
||||||
|
caml doit etre mis aussi dans le listing 4. Je comprends bien mieux le code que
|
||||||
|
les explications ! Sois plus precis dans le texte, ca aidera a comprendre.
|
||||||
|
|
||||||
|
utiliser hmax plutot que h pour ivp. Eviter les surcharges de noms autant que
|
||||||
|
possible.
|
||||||
|
|
||||||
|
Plutot que "discrete node", utiliser "synchronous machine" ? Le terme "machine"
|
||||||
|
est un terme technique des annees 60/70. Cf. articles historiques sur les
|
||||||
|
automates et les "sequential machines". Tu peux dire, qui se caraterise par un
|
||||||
|
etat initial, une fonction step lisant une entree et produisant une sortie,
|
||||||
|
(plus une fonction reset) si tu veux.
|
||||||
|
|
||||||
|
"Since time is logical in discrete nodes". Un peu trop pedant (et obscur) a mon
|
||||||
|
avis. On manipule des suites de valeurs; il n'y a donc pas de temps reel ou
|
||||||
|
physique. Le temps est juste la succession des valeurs.
|
||||||
|
|
||||||
|
Le paragraphe "The question of discrete events..." est un peu confus. Donne un
|
||||||
|
exemple. E.g., un timer: un controleur ouvre un robinet pendant 4s; une lumiere
|
||||||
|
doit clignoter en alternant allume/eteint 1s/2s. ce sont des cas ou il y a des
|
||||||
|
evenements en temps, cad en reference a la variable t (der t = 1 init 0).
|
||||||
|
D'autres evenements ne sont pas des evenements en temps. E.g., une roue qui
|
||||||
|
tourne (e.g. volant moteur). Compter le nombre de tours de roue par seconde avec
|
||||||
|
un capteur. Le schema general est dit de "Zero-crossing". Etc. La balle qui
|
||||||
|
rebondit, etc. Tu en trouveras d'autres !
|
||||||
|
|
||||||
|
|
||||||
|
La suite est pas mal. Il faut expliquer (et possiblement donner le code, au
|
||||||
|
moins en annexe) pour 2.5, 2.6, 2.7.
|
||||||
|
|
||||||
|
Ca prend forme. Tu peux donner l'intuition de la compilation. Dans le source, on
|
||||||
|
melange les der, present, up, etc. et le compilo., apres une analyse statique
|
||||||
|
(qui va verifier des proprietes et donc rejeter certains programmes), va
|
||||||
|
produire les differentes fonctions necessaires a la simulation qui alterne des
|
||||||
|
phases d'integration (le temps ronronne) et des pas discrets (reactions
|
||||||
|
instantanees).
|
||||||
|
|
||||||
|
Super. Continue ! --Marc
|
||||||
|
|
||||||
|
|
||||||
1493
doc/rep.typ
1493
doc/rep.typ
File diff suppressed because it is too large
Load diff
|
|
@ -41,7 +41,6 @@
|
||||||
modelers).},
|
modelers).},
|
||||||
}
|
}
|
||||||
@inbook{cit:op_sem_hyb_sys,
|
@inbook{cit:op_sem_hyb_sys,
|
||||||
address = {Berlin, Heidelberg},
|
|
||||||
series = {Lecture Notes in Computer Science},
|
series = {Lecture Notes in Computer Science},
|
||||||
title = {Operational Semantics of Hybrid Systems},
|
title = {Operational Semantics of Hybrid Systems},
|
||||||
volume = {3414},
|
volume = {3414},
|
||||||
|
|
@ -128,10 +127,88 @@
|
||||||
author = {Alur, Rajeev and Courcoubetis, Costas and Halbwachs, Nicolas and
|
author = {Alur, Rajeev and Courcoubetis, Costas and Halbwachs, Nicolas and
|
||||||
Henzinger, Thomas A and Ho, P-H and Nicollin, Xavier and Olivero,
|
Henzinger, Thomas A and Ho, P-H and Nicollin, Xavier and Olivero,
|
||||||
Alfredo and Sifakis, Joseph and Yovine, Sergio},
|
Alfredo and Sifakis, Joseph and Yovine, Sergio},
|
||||||
journal = {Theoretical computer science},
|
journal = {Theoretical Computer Science},
|
||||||
volume = {138},
|
volume = {138},
|
||||||
number = {1},
|
number = {1},
|
||||||
pages = {3--34},
|
pages = {3--34},
|
||||||
year = {1995},
|
year = {1995},
|
||||||
publisher = {Elsevier},
|
publisher = {Elsevier},
|
||||||
}
|
}
|
||||||
|
@inproceedings{cit:lustre,
|
||||||
|
title = {LUSTRE: A declarative language for programming synchronous systems},
|
||||||
|
author = {Pilaud, Daniel and Halbwachs, N and Plaice, J.A.},
|
||||||
|
booktitle = {Proceedings of the 14th Annual ACM Symposium on Principles of
|
||||||
|
Programming Languages (14th POPL 1987). ACM, New York, NY},
|
||||||
|
volume = {178},
|
||||||
|
pages = {188},
|
||||||
|
year = {1987},
|
||||||
|
organization = {Citeseer},
|
||||||
|
}
|
||||||
|
@article{cit:sundials,
|
||||||
|
title = {SUNDIALS: Suite of nonlinear and differential/algebraic equation
|
||||||
|
solvers},
|
||||||
|
author = {Hindmarsh, Alan C and Brown, Peter N and Grant, Keith E and Lee,
|
||||||
|
Steven L and Serban, Radu and Shumaker, Dan E and Woodward, Carol S
|
||||||
|
},
|
||||||
|
journal = {ACM Transactions on Mathematical Software (TOMS)},
|
||||||
|
volume = {31},
|
||||||
|
number = {3},
|
||||||
|
pages = {363--396},
|
||||||
|
year = {2005},
|
||||||
|
publisher = {ACM New York, NY, USA},
|
||||||
|
}
|
||||||
|
@inproceedings{cit:sundialsml,
|
||||||
|
title = {Sundials/ML: interfacing with numerical solvers},
|
||||||
|
author = {Bourke, Timothy and Inoue, Jun and Pouzet, Marc},
|
||||||
|
booktitle = {ACM Workshop on ML},
|
||||||
|
year = {2016},
|
||||||
|
}
|
||||||
|
@book{cit:theory_timed_io_automata,
|
||||||
|
address = {Cham},
|
||||||
|
series = {Synthesis Lectures on Distributed Computing Theory},
|
||||||
|
title = {The Theory of Timed I/O Automata},
|
||||||
|
rights = {https://www.springernature.com/gp/researchers/text-and-data-mining
|
||||||
|
},
|
||||||
|
ISBN = {978-3-031-00875-7},
|
||||||
|
url = {https://link.springer.com/10.1007/978-3-031-02003-2},
|
||||||
|
DOI = {10.1007/978-3-031-02003-2},
|
||||||
|
abstractNote = {This monograph presents the Timed Input/Output Automaton
|
||||||
|
(TIOA) modeling framework, a basic mathematical framework to
|
||||||
|
support description and analysis of timed (computing)
|
||||||
|
systems. Timed systems are systems in which desirable
|
||||||
|
correctness or performance properties of the system depend on
|
||||||
|
the timing of events, not just on the order of their
|
||||||
|
occurrence. Timed systems are employed in a wide range of
|
||||||
|
domains including communications, embedded systems, real-time
|
||||||
|
operating systems, and automated control. Many applications
|
||||||
|
involving timed systems have strong safety, reliability and
|
||||||
|
predictability requirements, which makes it important to have
|
||||||
|
methods for systematic design of systems and rigorous
|
||||||
|
analysis of timing-dependent behavior. An important feature
|
||||||
|
of the TIOA framework is its support for decomposing timed
|
||||||
|
system descriptions. In particular, the framework includes a
|
||||||
|
notion of external behavior for a timed I/O automaton, which
|
||||||
|
captures its discrete interactions with its environment. The
|
||||||
|
framework also defines what it means for one TIOA to implement
|
||||||
|
another, based on an inclusion relationship between their
|
||||||
|
external behavior sets, and defines notions of simulations,
|
||||||
|
which provide sufficient conditions for demonstrating
|
||||||
|
implementation relationships. The framework includes a
|
||||||
|
composition operation for TIOAs, which respects external
|
||||||
|
behavior, and a notion of receptiveness, which implies that a
|
||||||
|
TIOA does not block the passage of time.},
|
||||||
|
publisher = {Springer International Publishing},
|
||||||
|
author = {Kaynar, Dilsun K. and Lynch, Nancy and Segala, Roberto and
|
||||||
|
Vaandrager, Frits},
|
||||||
|
year = {2011},
|
||||||
|
collection = {Synthesis Lectures on Distributed Computing Theory},
|
||||||
|
language = {en},
|
||||||
|
}
|
||||||
|
@article{cit:illinois,
|
||||||
|
title = {Inverse interpolation, a real root of f (x)= 0},
|
||||||
|
author = {Snyder, J.N.},
|
||||||
|
journal = {University of Illinois Digital Computer Laboratory, ILLIAC I
|
||||||
|
Library Routine H1-71},
|
||||||
|
volume = {4},
|
||||||
|
year = {1953},
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,20 +6,30 @@ scope: source
|
||||||
|
|
||||||
contexts:
|
contexts:
|
||||||
main:
|
main:
|
||||||
- match: \b(let|in|where|rec|and|local)\b
|
- match: \b(val|let|in|where|rec|and|local)\b
|
||||||
scope: keyword.control
|
scope: keyword.control
|
||||||
|
|
||||||
- match: \b(if|then|else)\b
|
- match: \b(if|then|else|match|with)\b
|
||||||
scope: keyword.control.conditional
|
scope: keyword.control.conditional
|
||||||
|
|
||||||
- match: \b(hybrid|node)\b
|
- match: \b(hybrid|node)\b
|
||||||
scope: keyword.control
|
scope: keyword.control
|
||||||
|
|
||||||
- match: \b(up|assert|der|init|reset|last)\b
|
- match: \b(period|up|assert|der|init|reset|present|last|fby|pre)\b
|
||||||
scope: entity.name.constant
|
scope: keyword.control
|
||||||
|
|
||||||
|
- match: \b(float|int)\b
|
||||||
|
scope: entity.name.type
|
||||||
|
|
||||||
|
- match: \b[0-9]*(\.[0-9]+)?\b
|
||||||
|
scope: constant
|
||||||
|
|
||||||
|
- match: \b(true|false)\b
|
||||||
|
scope: constant
|
||||||
|
|
||||||
- match: '"'
|
- match: '"'
|
||||||
push: string
|
push: string
|
||||||
|
|
||||||
- match: \(\*
|
- match: \(\*
|
||||||
push: comment
|
push: comment
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue