<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/***
StyleSheet used for my own customization (jpc 2011)
***/
/*{{{*/
   #sidebar { display:none; }
   #displayArea { margin-right:1em; }
/*}}}*/
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
* Empty
A few comparison tests between Matlab, Octave, Scilab and Nsp by [[Bruno Pincon|http://www.iecn.u-nancy.fr/~pincon]] are available [[here|bench.pdf]] as a pdf document. The results are summerized here in a table:

|!test|!octave 2.9.10|!matlab 7.1|!nsp|!scilab-unix|!scilab-win|
|fibonnaci |  5.768 |  2.153 |  1.230 |  1.460 |  1.362|
|subsets |  6.444 |  1.883 |  1.484 |  2.760 |  2.854|
|irn55_rand |  7.485 |  1.372 |  1.750 |  1.560 |  1.692|
|tri fusion |  7.881 |  0.571 |  1.407 |  1.430 |  1.282|
|tri rapide |  8.144 |  1.973 |  1.494 |  1.900 |  1.612|
|harmvect |  1.745 |  1.702 |  1.169 |  1.230 |  1.152|
|harmloop |  5.486 |  0.030 |  1.876 |  1.790 |  1.692|
|fannkuch |  7.433 |  0.831 |  1.343 |  0.900 |  0.831|
|mon_lu |  3.135 |  2.023 |  1.544 |  1.850 |  1.953|
|crible |  1.092 |  0.981 |  0.985 |  1.210 |  1.432|
|make_perm |  5.431 |  1.021 |  1.146 |  1.740 |  1.472|
|inv_perm |  6.206 |  0.010 |  1.128 |  0.910 |  0.831|
|fftx | 18.020 |  3.104 |  1.737 |  7.290 |  7.140|
|pascal |  3.413 |  0.481 |  1.084 |  1.310 |  2.964|
|hmeans |  4.351 |  1.833 |  1.605 |  3.090 |  4.987|
|simplexe |  1.883 |  1.072 |  1.248 |  1.630 |  1.773|
|loop_call_f |  6.611 |  0.100 |  1.306 |  1.710 |  1.292|
|loop_call_p |  3.706 |  0.300 |  1.039 |  0.470 |  0.461|
|form_vect1 |  1.963 |  2.664 |  0.029 |  2.110 |  4.266|
|form_vect2 |  4.230 |  2.864 |  0.815 |  1.390 |  3.024|
|loop1 |  4.576 |  0.010 |  1.407 |  1.330 |  1.242|
|loop2 | 14.155 |  0.040 |  2.115 |  1.960 |  1.853|
|loop3 |  5.378 |  0.010 |  1.644 |  1.550 |  1.452|
|test bool |  1.416 |  3.986 |  1.238 |  2.840 |  3.175|
|test find |  4.801 |  2.363 |  1.417 |  4.490 |  4.857|
|prime_factors | 17.843 |  0.060 |  0.851 |  5.000 |  4.236|
|extraction |  3.557 |  1.562 |  1.189 |  3.080 |  3.124|
|insertion |  2.209 |  1.242 |  1.177 |  2.270 |  2.293|
|!Total time (sec) | 164.36 |  36.24 |  36.45 |  60.26 |  66.31|

*  M. de Lara, B. Heymann, ~J-Ph. Chancelier. ~Decomposition-Coordination Method for Finite Horizon Bandit Problems. Bayesian Causal Inference for Real World Interactive Systems a workshop at KDD 2021, 14-15 August 2021.
*  Pierre Carpentier, ~Jean-Philippe Chancelier, Arnaud Lenoir and François Pacaud. Optimization of Energy Production and Transport - Approaches by Decomposition under Stochasticity. Variational Analysis and Applications for Modelling of Energy Exchange - VAME 2017, Perpignan, 2017. 
*  Pierre Carpentier and ~Jean-Philippe Chancelier. Dual Approximate Dynamic Programming for Large Scale Hydro Valleys. XIV International Conference on Stochastic Programming - ICSP 2016, Búzios, Brazil, 2016.
*  Pierre Carpentier and ~Jean-Philippe Chancelier. Dual Approximate Dynamic Programming for Large Scale Hydro Valleys. PGMO Days 2015, France, oct, 2015. 
*  J.-C. Alais, P. Carpentier, J.-P. Chancelier, M. De Lara, V. Leclère. Chance-constrained optimal management of a hydropower dam. ~PGMO-COPI'14, France, oct, 2014. 
*  J.-C. Alais, P. Carpentier, J.-P. Chancelier, M. De Lara, V. Leclère Decomposition/coordination applied to stochastic optimal control problems. Practical aspects and theoretical questions Séminaire Parisien d'Optimisation, jun, 2014.
* Michel De Lara, Pierre Carpentier, ~Jean-Philippe Chancelier and Vincent Leclère. Spatial Decomposition/Coordination Methods for Stochastic Optimal Control Problems. CMM Workshop "Optimization meets General equilibrium theory", Santiago, Chile, dec, 2014.
* P. Carpentier and Team SOWG. Variational approach to SOC problems. International Conference on Stochastic Programming Bergamo, Italy, July 2013.
* P. Carpentier, J.Ph Chancelier, G. Cohen, M. De Lara, P. Girardeau. Dynamic Consistency for Stochastic Optimal Control Problems. International Conference on Stochastic Programming Bergamo, Italy, July 2013.
* P. Carpentier, J.Ph Chancelier, M. De Lara.  Information constraints and discretization puzzles in stochastic optimal control. International Conference on Stochastic Programming Bergamo, Italy, July 2013.
* [[Summer School CEA-EDF-INRIA 2012|http://cermics.enpc.fr/~delara/ENSEIGNEMENT/CEA-EDF-INRIA_2012/CEA-EDF-INRIA_2012/]], Stochastic Optimization, Cadarache, June 25th -- July 6th, 2012
* J.-P. Chancelier, P. Pakshin, S. Soloviev. LMI Parser for NSP Software Package [[Proceedings of the 18th IFAC World Congress|http://www.ifac-papersonline.net/Detailed/52159.html]]
* P. Carpentier, J.-P. Chancelier, G. Cohen, M De Lara, P. Girardeau. Dynamic consistency for stochastic optimal control problems with risk constraints. COPI 2011. Paris 23-25 Nov 2011 [[slides|pdf/AOR_slides.pdf]].
* P. Carpentier, J.-P. Chancelier, G. Cohen. Optimal control under probability constraint. COPI 2011. Paris 23-25 Nov 2011.
* P. Carpentier, J.-P. Chancelier, G. Cohen. Optimal control under probability constraint. SADCO Workshop Ensta ~ParisTech March 2011 [[slides|pdf/Slides_SADCO.pdf]].
*  P. Carpentier, J.-P. Chancelier, G. Cohen. Optimal control under probability constraint. 25th IFIP TC7 Conference, Berlin, September 2011.
* P. Carpentier, J.-P. Chancelier, G. Cohen, M. De Lara and P. Girardeau. Consistance dynamique pour les problèmes de commande optimale stochastique. Groupe de travail du laboratoire ~FiME, Institut Henri Poincaré, Paris octobre 2010.
* P. Carpentier, J.-P. Chancelier, G. Cohen, M. De Lara and P. Girardeau. Consistance dynamique en optimisation stochastique en temps discret. MODE 2010 : Conférence de la SMAI sur l'optimisation et la décision. March 2010.
* P. Carpentier, J.-P. Chancelier, G. Cohen, M. De Lara and P. Girardeau. Dynamical Consistency for Stochastic Optimal Control Problems. 12th International Conference on Stochastic Programming (Halifax). Aug 2010.
* P. Carpentier, J.-P. Chancelier and G. Cohen. Robust approach for aerospatial optimal control problems. 23rd European Conference on Operational Research. Bonn, July 5-9 2009. 
* J.-P. Chancelier, B. Lapeyre and J. Lelong. [[Using Premia and Nsp for Constructing a Risk Management Benchmark for Testing Parallel Architecture|http://doi.ieeecomputersociety.org/10.1109/IPDPS.2009.5161144]]. 23rd IEEE International Parallel and Distributed Processing Symposium, Rome, Italy, 24-29 May 2009. 
* P. Carpentier, J.-P. Chancelier and G. Cohen. Robust approach for aerospatial optimal control problems. Conference on Optimization and Practices in Industry,EDF, Clamart, France. November 2008.
* J.-P. Chancelier and SOWG. Mosco-convergence of stochastic optimization problems involving both random variables and measurability constraints approximations. 22nd European Conference on Operational Research (EURO XXII), 8-11 juillet 2007. Prague, République Tchèque.
* G. Cohen and SOWG. Optimal scenario tree topology and corresponding rate of convergence, 11th Conference on Stochastic Programming (SPXI), Vienna, Austria, August 27-31, 2007.
* P. Carpentier and SOWG. Convergence of approximations of stochastic optimization problems subject to measurability constraints. 11th Conference on Stochastic Programming (SPXI), Vienna, Austria, August 27-31, 2007.
* J.-P. Chancelier and B.D'~Andrea-Novel. Scilab comme outil pédagogique d'enseignement en acoustique-informatique-automatique pour la musique. Cifa, Bordeaux, September 2006.
* J.-P. Chancelier and G.Cohen. Contrôle de la ventilation d'un tunnel routier. Colloque Pierre Bernard: Sur les Pbs de P.B., Inria ~Sophia-Antipolis, 29-30 Mars 2005.
* J.-P. Chancelier, G.Cohen, and ~J-B. Henniart. Control of pollutant concentrations in a road tunnel using electric  fans. In  Computer Aided Control Systems Design, The Grand Hotel,  Taipei, Taiwan, September 2-4 2004.
* Kengy Barty and Pierre Carpentier and ~Jean-Philippe Chancelier and Guy Cohen and Michel De Lara. Some insights on the separation principle for discrete time stochastic input-output systems. IX International Conference on Stochastic Programming, Berlin 25-31 August 2001.
* Kengy Barty and Pierre Carpentier and ~Jean-Philippe Chancelier and Guy Cohen and Michel De Lara. Discretization, information structure and scenario trees. IX International Conference on Stochastic Programming, Berlin 25-31 August 2001.
* J.-P. Chancelier, M.Cohen De Lara, F.Pacard, and M.Maldiney. Identification of pollution sources in rivers. In  IEEE International Conference on Control Applications,  September 1996.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Pandore: Un système expert pour l'optimisation des systèmes  dynamiques. In  Les Avancées en Programmation, pages 113-124. Bigre 70,  Actes journées ~Afcet-Groplan, 1990.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Un environnement de calcul formel et numérique pour l'automatique. Technical report, Rapport final Convention DRET, 1989.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. An expert system for stochastic control problems : Automatic report  generation. In  Computer Science in Economics and Management, volume2,  pages 65-82. Kluwer Academic Publishers, 1989.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. T. pandore. In M.J. Denham and A.J. Laub, editors,  Advanced computed  concepts and techiques, In Control Engineering, volume47 of  F. NATO  ASI, 1989.
* J.-P. Chancelier and A.Sulem. Macrotex : Un générateur de code Latex implémenté en macsyma. Technical Report3, Cahiers Gutenberg, 1989.
* J.P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Automatic study in stochastic control in stochastic differentail  systems. In W.Fleming and P.L. Lions, editors,  stochastic control theory  and applications, volume10. Springer Verlag, IMA, 1988.
* M. Akian, J.P. Chancelier, and J.P. Quadrat. Dynamic programming complexity and application. In  IEEE CDC Austin Texas, December 1988.
* J.-P. Chancelier and A.Sulem. Macrotex : A Latex code generator in macsyma. Technical report, MACSYMA Newsletter, 1988.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Lisp-macsyma-prolog : an environment for fortran and tex generation. In  Advanced Studies "Application of advanced concept and  techniques in control engineering". Nato, Al Ciocco, Italie, September 1987.
* J.-P. Chancelier, C.Gomez, and J.P. Quadrat. Macrofort, a fortran program generator. Technical report, Macsyma letters, 1987.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Automatic study in stochastic control. In  IMA Volumes in Mathematics and its Applications, volume10,  pages 79-86. Springer Verlag, 1987.
* J.-P. Chancelier and A.Sulem. Macrotex : A Latex code generator in macsyma. Technical Report93, Rapport technique INRIA, 1987.
* G.Blankenship, J.-P. Chancelier, C.Gomez, A.La Vigna, D.C. ~McEnany,  J.P.Quadrat, and A.Sulem. An expert system for control and signal processing with automatic  fortran program generation. In  Theory and Applications of Nonlinear Control Systems. ~North-Holland, 1986.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Pandore : Exemple de commande optimale automatisée. Technical report, Rapport technique. R.G. 6., Greco de Programmation,  1986.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Pandore. In M.J. Denham and A.J. Laub, editors,  Advanced Computing  Concepts and Techniques in Control Engineering, volume47, pages 81-125.  NATO ASI Series.Series F: Computer and Systems Sciences, 1986.
* J.-P. Chancelier, C.Gomez, J.P. Quadrat, and A.Sulem. Vers un système expert pour l'optimisation et l'identification de  systèmes dynamiques. In  Actes du septième  colloque international sur les  méthodes de calcul scientifique et technique Versailles. North Holland,  1985.

* [[Décisions dans l'incertain 2024|decision-incertain/index-2024.html]]
* [[Optimisation et Contrôle 2020|optimisation.html]]
* [[Modéliser l'Aléa 2020|modalea.html]]
* Algorithmique et programmation
** [[Java 2001|java-2001/index.html]]
** [[Java 2002|java-2002/td1/td1.html]]
* Mopsi (2003) 
** [[TP Scilab|mopsi/index.html]]
* Méthodes numériques en contrôle stochastique (Paris I)
** [[Poly|livre.pdf]]
** [[Examen 2003|exam-parisI/exam-2003.pdf]]
** [[Examen 2004|exam-parisI/exam-2004.pdf]]
** [[Examen 2004 (umlv)|exam-parisI/exam-umlv-2004.pdf]]
** [[Examen 2005|exam-parisI/exam-2005.pdf]]
** [[Examen 2006|exam-parisI/exam-2006.pdf]]
** [[Examen 2007|exam-parisI/exam-2007.pdf]]
* Ensta ~OROC-OP-DP: Markov decision processes, Dynamic Programming and Applications
** [[Notes de cours|ensta.pdf]]
** (ENSTA) TP : Optimisation du PageRank
*** [[ergodique.sci|page_rank/ergodique.sci]]
*** [[page-rank-continu.sci|page_rank/page-rank-continu.sci]]
*** [[page-rank-discret.sci|page_rank/page-rank-discret.sci]]
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};

//--
//-- Crypto functions and associated conversion routines
//--

// Crypto "namespace"
function Crypto() {}

// Convert a string to an array of big-endian 32-bit words
Crypto.strToBe32s = function(str)
{
	var be = Array();
	var len = Math.floor(str.length/4);
	var i, j;
	for(i=0, j=0; i<len; i++, j+=4) {
		be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
	}
	while (j<str.length) {
		be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
		j++;
	}
	return be;
};

// Convert an array of big-endian 32-bit words to a string
Crypto.be32sToStr = function(be)
{
	var str = "";
	for(var i=0;i<be.length*32;i+=8)
		str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
	return str;
};

// Convert an array of big-endian 32-bit words to a hex string
Crypto.be32sToHex = function(be)
{
	var hex = "0123456789ABCDEF";
	var str = "";
	for(var i=0;i<be.length*4;i++)
		str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
	return str;
};

// Return, in hex, the SHA-1 hash of a string
Crypto.hexSha1Str = function(str)
{
	return Crypto.be32sToHex(Crypto.sha1Str(str));
};

// Return the SHA-1 hash of a string
Crypto.sha1Str = function(str)
{
	return Crypto.sha1(Crypto.strToBe32s(str),str.length);
};

// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
Crypto.sha1 = function(x,blen)
{
	// Add 32-bit integers, wrapping at 32 bits
	add32 = function(a,b)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF);
		var msw = (a>>16)+(b>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Add five 32-bit integers, wrapping at 32 bits
	add32x5 = function(a,b,c,d,e)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
		var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Bitwise rotate left a 32-bit integer by 1 bit
	rol32 = function(n)
	{
		return (n>>>31)|(n<<1);
	};

	var len = blen*8;
	// Append padding so length in bits is 448 mod 512
	x[len>>5] |= 0x80 << (24-len%32);
	// Append length
	x[((len+64>>9)<<4)+15] = len;
	var w = Array(80);

	var k1 = 0x5A827999;
	var k2 = 0x6ED9EBA1;
	var k3 = 0x8F1BBCDC;
	var k4 = 0xCA62C1D6;

	var h0 = 0x67452301;
	var h1 = 0xEFCDAB89;
	var h2 = 0x98BADCFE;
	var h3 = 0x10325476;
	var h4 = 0xC3D2E1F0;

	for(var i=0;i<x.length;i+=16) {
		var j,t;
		var a = h0;
		var b = h1;
		var c = h2;
		var d = h3;
		var e = h4;
		for(j = 0;j<16;j++) {
			w[j] = x[i+j];
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=16;j<20;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=20;j<40;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=40;j<60;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=60;j<80;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}

		h0 = add32(h0,a);
		h1 = add32(h1,b);
		h2 = add32(h2,c);
		h3 = add32(h3,d);
		h4 = add32(h4,e);
	}
	return Array(h0,h1,h2,h3,h4);
};


}
//}}}
You can compile and run {{{nsp}}} from source on Linux. It should also work on cygwin/mingwin and a native win32 version will be soon available (with opengl support thru gtkglext).

You can access the cvs repository of Nsp using Anonymous CVS access via ssh.
This method follows the notes of [[http://www.kitenet.net/~joey/sshcvs|http://www.kitenet.net/~joey/sshcvs]]  which are reproduced here.

There are two methods you can use; for either method, you will need [[this file|sshanoncvs.txt]] and you will have to use one of the two following methods.

* Download [[the file|sshanoncvs.txt]], make it executable, put it somewhere, say, {{{~/bin/sshanoncvs}}}. Then set the {{{CVS_RSH}}} environment variable to point to it and use {{{cvs}}} as you normally would. For example, just run this command to check out nsp:

{{{
  CVS_RSH=~/bin/sshanoncvs cvs -d :ext:nsp@titan.enpc.fr:/u/cermics/q/nsp/cvsroot checkout nsp2      
}}}

* Just use [[the file|sshanoncvs.txt]] as a {{{ssh}}} key file without making it executable. Download the file, set its permissions to 600, and put it in {{{~/.ssh/sshanoncvs}}}. Then add the following to your {{{~/.ssh/config}}}:

{{{
Host titan.enpc.fr                                                                                   
User nsp                                                                                             
IdentityFile ~/.ssh/sshanoncvs                                                                       
ForwardAgent no                                                                                      
ForwardX11 no                                                                                        
Compression yes                                                                                      
}}}

Then just set {{{CVS_RSH=ssh}}} and checkout as normal:
{{{
      SSH_AUTH_SOCK= CVS_RSH=ssh cvs -d :ext:nsp@titan.enpc.fr:/u/cermics/q/nsp/cvsroot checkout nsp2
}}}

Note that either of the two methods above require you be able to use {{{ssh}}} 2.

[[Publications]]

/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

//--
//-- Deprecated code
//--

// @Deprecated: Use createElementAndWikify and this.termRegExp instead
config.formatterHelpers.charFormatHelper = function(w)
{
	w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
};

// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
config.formatterHelpers.monospacedByLineHelper = function(w)
{
	var lookaheadRegExp = new RegExp(this.lookahead,"mg");
	lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var text = lookaheadMatch[1];
		if(config.browser.isIE)
			text = text.replace(/\n/g,"\r");
		createTiddlyElement(w.output,"pre",null,null,text);
		w.nextMatch = lookaheadRegExp.lastIndex;
	}
};

// @Deprecated: Use <br> or <br /> instead of <<br>>
config.macros.br = {};
config.macros.br.handler = function(place)
{
	createTiddlyElement(place,"br");
};

// Find an entry in an array. Returns the array index or null
// @Deprecated: Use indexOf instead
Array.prototype.find = function(item)
{
	var i = this.indexOf(item);
	return i == -1 ? null : i;
};

// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
// @Deprecated: Use store.getLoader().internalizeTiddler instead
Tiddler.prototype.loadFromDiv = function(divRef,title)
{
	return store.getLoader().internalizeTiddler(store,this,title,divRef);
};

// Format the text for storage in an HTML DIV
// @Deprecated Use store.getSaver().externalizeTiddler instead.
Tiddler.prototype.saveToDiv = function()
{
	return store.getSaver().externalizeTiddler(store,this);
};

// @Deprecated: Use store.allTiddlersAsHtml() instead
function allTiddlersAsHtml()
{
	return store.allTiddlersAsHtml();
}

// @Deprecated: Use refreshPageTemplate instead
function applyPageTemplate(title)
{
	refreshPageTemplate(title);
}

// @Deprecated: Use story.displayTiddlers instead
function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,unused3)
{
	story.displayTiddlers(srcElement,titles,template,animate);
}

// @Deprecated: Use story.displayTiddler instead
function displayTiddler(srcElement,title,template,unused1,unused2,animate,unused3)
{
	story.displayTiddler(srcElement,title,template,animate);
}

// @Deprecated: Use functions on right hand side directly instead
var createTiddlerPopup = Popup.create;
var scrollToTiddlerPopup = Popup.show;
var hideTiddlerPopup = Popup.remove;

// @Deprecated: Use right hand side directly instead
var regexpBackSlashEn = new RegExp("\\\\n","mg");
var regexpBackSlash = new RegExp("\\\\","mg");
var regexpBackSlashEss = new RegExp("\\\\s","mg");
var regexpNewLine = new RegExp("\n","mg");
var regexpCarriageReturn = new RegExp("\r","mg");

}
//}}}
<<tabs txtPluginsTa
'1' "1" GalleryImg1
'2' "2" GalleryImg2
'3' "3" GalleryImg3
'4' "4" GalleryImg4
'5' "5" GalleryImg5
'6' "5" GalleryImg6
'7' "5" GalleryImg7
>>

A Nsp graphic window embeded in a Gtk window with different widgets

[img[graphics-demo-small.png][graphics-demo.png]]
Build a Gtk widget in Nsp 

[img[demogtk-small.png][demogtk.png]]      
  
Nsp matrix edition in a Gtk Widget.

[img[gtk-widgets-small.png][gtk-widgets.png]] 
  
Nsp main window.

[img[main-window-small.png][main-window.png]]  
  
Nsp help window.

[img[help-window-small.png][help-window.png]]  
  
A screen snapshot on Windows. 

[img[nsp-tiddly/images/nsp.png][nsp-tiddly/images/nsp-big.png]] 
  
A screen snapshot on Linux.

[img[nsp-tiddly/images/nsp-unix-small.png][nsp-tiddly/images/nsp-unix.png]]    
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>

Test 
Next Figure gives the screen shot of a gtk window which is 
built and activated from Nsp. 

[img[demogtk.png]]

The graphic window is composed of a main window, a standard nsp 
graphic window (which is itself a set of widgets) an adjustment 
widget, three radio buttons and a close button. 
When the adjustment button is moved the graph has to be recomputed and 
redisplayed which a new grid size. When a radio button is changed 
then the graph has to be redrawn with a changed colormap. 

Gtk widget can be created and assembled in nsp in a similar way as if 
the code was written in C. i.e the sequence of function call (or method 
call is very similar). Note that at nsp level we use an object oriented way 
to call Gtk functions. For example,  a call to 
 {{{void gtk_window_set_title(GtkWindow *window,const gchar *title)}}}
is replaced in Nsp by calling the method {{{set_title}}} on a {{{GtkWindow}}}
object. All the Gtk widgets can be used at nsp level. 
For example a {{{GtkWindow}}} widgets is created by calling 
{{{gtkwindow_new()}}}.

The best way to rapidly write nsp gtk application is to start by 
running the gtk demos and use their associated code as a guide and 
use a gtk on line help manual to get real precise informations 
on each function. For example to get more information on 
a method call like {{{scale.set_size_request[150,-1]}}} you can 
search the string {{{set_size_request}}} in Gtk help pages (through devhelp) 
to obtain a reference to {{{gtk_widget_set_size_request ()}}}. 
{{{set_size_request}}} is a method of the class {{{GtkWidget}}} and 
since a {{{Gtkhscale}}} inherits from {{{GtkWidget}}} this method 
can be used on the argument {{{scale}}} 

Note also that a set of predefined gtk constants are accessible at 
nsp level through predefined hash tables. Thus prefixing a predefined name by {{{GTK.}}} 
will give its value. 

The last important point is that handlers associated to signals can be given by nsp functions. 
If the adjustment is moved on the described application, then a call to 
{{{demo_dyn_graph_value_changed}}}
is performed. And when the handler is called, it is 
called with appropriate arguments. The handler was connected with the command 

{{{
 adjustment.connect[ "value_changed", 
                    demo_dyn_graph_value_changed, list(id_win,scale,win)];
}}}

Thus, when called the argument {{{widget}}} will be set to the GTkAdjustement widget which was 
changed and {{{args}}} will be set to the list {{{list(id_win,scale,win)}}}. 
Thus when called, handlers receive specific informations through arguments (here a 
widget and a list, the list being composed of an integer, a GtkHscale widget and a GtkWindow widget).

More than one instance of the same application can coexists, since handlers when called 
knows though their arguments which widgets and data they own. 

Gtk objects for example a GtkWindow are objects with a by reference semantic and it is possible 
to store data in each Gtk object through the use of methods {{{get_data}}} and {{{set_data}}}.
It is therefore possible to share data between widgets using this mechanism. For example 
the grid size is store in the main GtkWindow of the application with key {{{hscale}}}. 
When it is changed by calling {{{demo_dyn_graph_value_changed}}} the field {{{hscale}}} of 
the GtkWindow is updated (See {{{args(3).set_data[hscale=args(2).get_value[]]}}}) and this 
values will also be accessible in other handlers since the GtkWindow is added as argument 
to all handlers and the GtkWindow arguments are all references to the same real GtkWindow object.
It is then possible to share data between independent functions without using global variables.

Note also that when handlers are connected to a signal, in fact the handler function is 
copied. Thus, it is possible to use local functions as handlers. 

* The main function 

{{{
function demo_dyn_graph()
  win = gtkwindow_new()
  win.connect["delete_event", demo_delete];
  win.set_title["range_controls"];
  box1 = gtkvbox_new(homogeneous=%f,spacing=0)
  win.add[box1]
  box1.show[]
  id_win=nsp_graphic_new(win,box1,dim=[300,200]);
  //adjustment = GtkAdjustment(0,expand= 0,fill= 101,padding= 0.1, 1, 1)
  initial_v=10;
  adjustment =gtkadjustment_new(value=initial_v,lower=5,upper=21,step_incr=1,...
				page_incr=1,page_size=1)
  win.set_data[hscale=initial_v];
  scale = gtkhscale_new(adjustment=adjustment)
  scale.set_size_request[150,-1]
  scale.set_update_policy[GTK.UPDATE_DELAYED];
  scale.set_digits[1];
  scale.set_draw_value[%t];
  box1.pack_start[scale,expand=%f,fill=%f,padding=0]
  scale.show[]
  adjustment.connect[ "value_changed", demo_dyn_graph_value_changed,...
		      list(id_win,scale,win)];

  box2=gtkvbox_new(homogeneous=%f,spacing=0);
  box1.pack_start[box2,expand=%f,fill=%t,padding=0];
  box1=box2;
  
  // hbox for radio buttons 
  // ----------------------
  box2 = gtkhbox_new(homogeneous=%f,spacing=0)
  box2.set_border_width[10]
  box1.pack_start[box2,expand=%f,fill=%f,padding=0];
  box2.show[];
  // radio buttons
  // ----------------------
  // The "toggled" signal
  button1=gtkradiobutton_new(label="hot")
  box2.pack_start[button1]
  button1.show[]
  // button1 i sthe default selection.
  button1.set_active[%t];
  win.set_data[colormap_id = 1];
  //
  button1.connect["toggled",demo_dyn_graph_toggled, list(id_win,button1,1,win)];
  // 
  button=gtkradiobutton_new(group=button1,label= "gray");
  box2.pack_start[button];
  button.show[];
  button.connect[ "toggled",demo_dyn_graph_toggled,
		   list(id_win,button,2,win)];
  // 
  button=gtkradiobutton_new(group=button1,label= "jet");
  box2.pack_start[button];
  button.show[];
  button.connect[ "toggled",demo_dyn_graph_toggled,
		   list(id_win,button,3,win)];

  separator = gtkhseparator_new ();
  box1.pack_start[separator];
  separator.show[];
  // 
  button = gtkbutton_new(label="Close")
  button.connect["clicked", button_destroy_win,list(win)];
  box1.pack_start[button,expand=%f,fill=%f,padding=0]
  button.set_flags[GTK.CAN_DEFAULT]
  button.grab_default[]
  button.show[]
  win.show_all[]
  demo_dyn_graph_draw(id_win,10,1);
  //gtk_main()
endfunction
}}}

* Handler activated when adjustment is moved 

{{{
function demo_dyn_graph_value_changed(widget,args)
// args=list(win_id, gtkhscale,win);
  args(3).set_data[hscale=args(2).get_value[]];
  demo_dyn_graph_draw(args(1),args(2).get_value[],args(3).get_data['colormap_id']);
endfunction
}}}

* Handler activated when a radio button is pressed 

{{{
function demo_dyn_graph_toggled(widget,args)
  // args(2) is the gtkhscale
  if args(2).get_active[]==%t then 
   args(4).set_data[colormap_id =  args(3)];
  end
  value=args(4).get_data['hscale'];
  demo_dyn_graph_draw(args(1),value,args(3));
endfunction
}}}

* Update graphics with new parameters 

{{{
function demo_dyn_graph_draw(id,value,colormap_id)
  id1=xget('window');
  if id1<>id then xset('window',id);end 
  xclear();
  select colormap_id 
   case 1 then xset('colormap',hotcolormap(64));
   case 2 then xset('colormap',graycolormap(64));
   case 3 then xset('colormap',jetcolormap(64));
  end
  t=linspace(-%pi,%pi,value);plot3d1(t,t,sin(t)'*cos(t));
  if id1<>id then xset('window',id1);end 
endfunction
}}}

/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.2|
|''Date:''|Jul 21, 2006|
|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|
|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
***/

//{{{
// Ensure that the LegacyStrikeThrough Plugin is only installed once.
if(!version.extensions.LegacyStrikeThroughPlugin) {
version.extensions.LegacyStrikeThroughPlugin = {installed:true};

config.formatters.push(
{
	name: "legacyStrikeByChar",
	match: "==",
	termRegExp: /(==)/mg,
	element: "strike",
	handler: config.formatterHelpers.createElementAndWikify
});

} //# end of "install only once"
//}}}
 [img[images/img-bookmso.png][http://www.springer.com/fr/book/9783319181370]]  [img[images/img-book-new.png][http://www.springer.com/math/cse/book/978-1-4419-5526-5]] [img[images/img-book-chinese.png]]  [img[images/img-book-init.png][http://www.springer.com/west/home/computer/mathematics?SGWID=4-151-22-44240839-0&detailsPage=ppmmedia%7CotherBooks&seqNo=1&CIPageCounter=CI_MORE_BOOKS_BY_AUTHOR1]]  [img[images/img-book-scicos.png][http://www.springer.com/east/home/generic/search/results?SGWID=5-40109-22-65671832-0&SHORTCUT=www.springer.com/sgw/cda/frontpage/0,11855,5-40109-22-65671832-0,00.html]]  [img[images/img-book-birk.png][http://www.lavoisier.fr/notice/gbJLO6OOKNXLSRSO.html]] 
[[Cermics|http://cermics.enpc.fr]]
[[Enpc|http://www.enpc.fr]]
[[CV|cv.pdf]]
[[Hdr|hdr/habilitation-slides.pdf]]
[[Courses]]
[[Publications]]
----
[[Nsp]]
[[ScicosLab]]
[[ScilabGtk|ScicosLab]]
[[Scicoslab at Enpc|http://cermics.enpc.fr/scilab]]
----
[[Photos]]
[[Ski touring]]
[[Climbing]]
[[Personal Blog|file:/media/home/jpc/blog/blog.html]]
----
[[Tiddlywiki|http://tiddlywiki.com]] <<version>>
[[Nsp Home Page|nsp-tiddly/mine.html]]
<<tabs txtPluginsTa
'Linux' "Linux snapshot" GalleryImg7
'Windows' "Windows snapshot" GalleryImg6
>>
[[Vallée d'Ossau|http://fr.wikipedia.org/wiki/Ossau]]
Quelques photos sur Flickr. Cliquer sur mon Flickr badge !

<html>
<a href="http://www.flickr.com" style="text-align:center;">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><br>
<iframe style="background-color:#ffffff; border-color:#ffffff; border:none;" width="113" height="151" frameborder="0" scrolling="no" src="http://www.flickr.com/apps/badge/badge_iframe.gne?zg_bg_color=ffffff&zg_person_id=29694351@N00" title="Flickr Badge"></iframe>
</html>
*[65] T. Rigaud, P. Carpentier, J.-P. Chancelier, M. de Lara. Decomposition Methods for Dynamically Monotone ~Two-Time-Scale Stochastic Optimization Problems. [[hal-04015917 (March 2023)|https://hal.science/hal-04015917]]
** 
*[64] M. Akian, J.-P. Chancelier, L. Pascal, B. Tran. Tropical numerical methods for solving stochastic control problems [[hal-03944216 (2023)|https://hal.inria.fr/hal-03944216]]
**
*[63] C. Vessaire, J.-P. Chancelier, M. de Lara, P. Carpentier, A. ~Rodríguez-Martínez. Contributions on complexity bounds for Deterministic Partially Observed Markov Decision Process. [[hal-03902089 (2023)|https://hal.science/hal-03902089]]
** Submitted March 2023
*[62] A. Le Franc, P. Carpentier, J.-P. Chancelier, M. de Lara. Differentiability and Regularization of Parametric Convex Value Functions in Stochastic Multistage Optimization. [[hal-03903218v2 (2022)|https://hal.science/hal-03903218v2]]
** Submitted January 2023
*[61] A. Le Franc, J.-P. Chancelier, M. De Lara. The Capra-subdifferential of the l0 pseudonorm. [[hal-03505168v2 (2022)|https://hal.archives-ouvertes.fr/hal-03505168v2]], [[hal-03505168v1 (2021)|https://hal.archives-ouvertes.fr/hal-03505168v1]]
** Accepted in Optimization (Nov. 2022)
*[60] C. Vessaire, J.-P. Chancelier, M. De Lara, P. Carpentier, A. ~Rodríguez-Martínez, A. Robert. Multistage Optimization with a Material Balance Reservoir Model [[hal-0350860 (2022)|https://hal.archives-ouvertes.fr/hal-03508607v1]]
** Accepted in [[Computers & Chemical Engineering (2022)|https://doi.org/10.1016/j.compchemeng.2022.108005]]
*[59] P. Carpentier, M. de Lara, J.-Ph. Chancelier. Time Consistency for Multistage Stochastic Optimization Problems under Constraints in Expectation [[hal-03761310 (2022)|https://hal.archives-ouvertes.fr/hal-03761310]]
** Accepted in SIAM Journal on Optimization (SIOPT) Janv 2024.
*[58] B. Heymann, M. de Lara, J.-Ph. Chancelier. Causal Inference Theory with Information Dependency Models [[hal-03315815 (2021)|https://hal.archives-ouvertes.fr/hal-03315815]]
**
*[57] M. de Lara, J.-Ph. Chancelier, B. Heymann. Topological Conditional Separation [[hal-03315811 (2021)|https://hal.archives-ouvertes.fr/hal-03315811]]
**
*[56] J.-Ph. Chancelier, M. de Lara, B. Heymann. Conditional Separation as a Binary Relation [[hal-03315809 (2021)|https://hal.archives-ouvertes.fr/hal-03315809]]
**
*[55] P. Barbier, J.-Ph. Chancelier, M. de Lara, V. Paravy. ~Rank-Based Norms, ~Capra-Conjugacies and the Rank Function [[hal-03240885v1|https://hal.archives-ouvertes.fr/hal-03240885v1]]
** 
*[54] T. Bittar, J.-Ph. Chancelier, M. de Lara. Best Convex Lower Approximations of the l0 Pseudonorm on Unit Balls [[hal-03240878v1|https://hal.archives-ouvertes.fr/hal-03240878v1]]
** 
*[53] M. de Lara, B. Heymann, J.-Ph. Chancelier. ~Decomposition-Coordination Method for Finite Horizon Bandit Problems [[hal-03240964v1 (2021)|https://hal.archives-ouvertes.fr/hal-03240964v1]]
** 
*[52] J.-Ph. Chancelier, M. De Lara, Benoît Tran, Minimization Interchange Theorem on Posets  [[hal-03284701 (2021)|https://hal.archives-ouvertes.fr/hal-03284701]]
** Published in JMAA (2021)
*[51] J.-Ph. Chancelier, M. De Lara.  Conditional Infimum and Hidden Convexity in Optimization [[hal-03194348v1 (2021)|https://hal.archives-ouvertes.fr/hal-03194348v1]]
**
*[50] J.-Ph. Chancelier, M. De Lara.  ~Capra-Convexity, Convex Factorization and Variational Formulations for the l0 Pseudonorm [[hal-02459688v2 (2021)|https://hal.archives-ouvertes.fr/hal-02459688v2]]
** Accepted in ~Set-Valued and Variational Analysis (2021)
*[49] B. Heymann, M. De Lara, J.-Ph. Chancelier. Kuhn's Equivalence Theorem for Games in Product Form [[hal-03193448v1 (2021)|https://hal.archives-ouvertes.fr/hal-03193448v1]]
** Accepted in [[Games and Economic Behaviour|https://www.sciencedirect.com/science/article/pii/S0899825622001051]]  (Jun 2022) 
*[48] J.-Ph. Chancelier, M. De Lara. ~Orthant-Strictly Monotonic Norms, Generalized Top-k and k-Support Norms and the L0 Pseudonorm [[hal-02456433v2 (2021)|https://hal.archives-ouvertes.fr/hal-02456433v3]]
** Accepted in Journal of Convex Analysis (2022)
** J.-Ph. Chancelier, M. De Lara, ~Orthant-Strictly Monotonic Norms, Graded Sequences and Generalized Top-k and k-Support Norms for Sparse Optimization, [[hal-02456433 (2020), 29 pages|https://hal.archives-ouvertes.fr/hal-02456433]]
*[47] T. Bittar, P. Carpentier, J.-Ph. Chancelier, J. Lonchampt. The stochastic Auxiliary Problem Principle in Banach spaces: measurability and convergence [[hal-03115740v1 (2021)|https://hal.archives-ouvertes.fr/hal-03115740v1]]
** Accepted for publication in SIOPT (2022)
*[46] J.-Ph. Chancelier, M. De Lara. Constant Along Primal Rays Conjugacies and Generalized Convexity for Functions of the Support [[hal-02976039v1, Oct. 2020, 23 pages|https://hal.archives-ouvertes.fr/hal-02976039v1]]
**
*[45] M. Akian, J.-Ph. Chancelier, B. Tran, Tropical Dynamic Programming for Lipschitz Multistage Stochastic Programming [[arxiv:2010.10619, Oct. 2020, 23 pages|https://arxiv.org/abs/2010.10619]]
** Submitted Oct. 2020
*[44] B. Heymann, M. De Lara, J.-Ph. Chancelier, Kuhn's Equivalence Theorem for Games in Intrinsic Form [[hal--02880591, Jun. 2020, 25 pages|https://hal.archives-ouvertes.fr/hal-02880591]]
** This paper was developpend using the finite version of Witsenhausen's intrinsic model. A more general version [50] is published in Games and Economic Behaviour  (Jun 2022).
*[43] T. Bittar, P. Carpentier, J.-Ph. Chancelier, J. Lonchampt, A Decomposition Method by Interaction Prediction for the Optimization of Maintenance Scheduling [[hal--02489304v1, Feb. 2020, 30 pages|https://hal.archives-ouvertes.fr/hal-02489304v1]]
** Published in Annals of Operations Research (ANOR) Nov, 2021
*[42] J.-Ph. Chancelier, M. De Lara, Variational Formulations for the l0 Pseudonorm and Application to Sparse Optimization,[[hal-02459688, Jan. 2020, 23 pages|https://hal.archives-ouvertes.fr/hal-02459688]]
**
*[41] J.-Ph. Chancelier, M. De Lara, Constant Along Primal Rays Conjugacies and the l0 Pseudonorm, [[hal-02459673, Jan. 2020, 34 pages|https://hal.archives-ouvertes.fr/hal-02459673]]
** Published in [[Optimization Sept. 2020|https://www.tandfonline.com/doi/full/10.1080/02331934.2020.1822836]]
*[40] M. Akian, J.-Ph. Chancelier, B. Tran. A ~Min-plus-SDDP Algorithm for Deterministic Multistage Convex Programming. 58th IEEE Conference on Decision and Control, Dec 2019, Nice, France. [[hal-02436343 (version 1, Dec 2019)|https://hal.archives-ouvertes.fr/hal-02436343]]
** Published in 58th IEEE Conference on Decision and Control. [[https://doi.org/10.1109/CDC40024.2019.9028935|https://doi.org/10.1109/CDC40024.2019.9028935]].
*[39] A. Le Franc, P. Carpentier, J.-Ph. Chancelier, M. De Lara. ~EMSx: an Energy Management System numerical benchmark [[hal-02425913, Dec 2019|https://hal.archives-ouvertes.fr/hal-02425913]]
** Published in Energy Systems Sept. 2020
*[38] F. Pacaud, P. Carpentier, J.-Ph. Chancelier, M. De Lara. Distributed Multistage Optimization of ~Large-Scale Microgrids under Stochasticity [[hal-02420494|https://hal.archives-ouvertes.fr/hal-02420494]]
** Published in [[IEEE Transactions on Power Systems (2021)|10.1109/TPWRS.2021.3087775]], [[early access|https://ieeexplore.ieee.org/document/9449938]]
*[37] P. Carpentier, J.-Ph. Chancelier, M. De Lara, F. Pacaud. Mixed Spatial and Temporal Decompositions for ~Large-Scale Multistage Stochastic Optimization Problems. [[hal-02420480v2|https://hal.archives-ouvertes.fr/hal-02420480v2]]
** Published in [[JOTA (August 2020)|http://link.springer.com/article/10.1007/s10957-020-01733-7]] 
**[37-2] P. Carpentier, J.-Ph. Chancelier, M. De Lara, F. Pacaud. Upper and Lower Bounds for Large Scale Multistage Stochastic Optimization Problems: Decomposition Methods. [[hal-02420480 (version 1, Dec 2019)|https://hal.archives-ouvertes.fr/hal-02420480]] 
*** Submited to JOTA (2019).
**[37-1] P. Carpentier, J.-Ph. Chancelier, M. De Lara, F. Pacaud. Upper and Lower Bounds for Large Scale Multistage Stochastic Optimization Problems: Application to Microgrid Management. [[hal-02420494 (version 1, Dec 2019)|https://hal.archives-ouvertes.fr/hal-02420494]] 
*** Submited to JOTA (2019).
*[36] J.-Ph. Chancelier, M. De Lara, Hidden Convexity in the l0 Pseudonorm. [[hal-02146454, 2019|https://hal.archives-ouvertes.fr/hal-02146454]]
** Published in Journal of Convex Analysis (May 2020)
*[35] J.-Ph. Chancelier, M. De Lara, A Suitable Conjugacy for the l0 Pseudonorm [[hal-02013977 (version 1, Feb 2019)|https://hal.archives-ouvertes.fr/hal-02013977]]
**
*[34] J.-Ph. Chancelier, M. De Lara, Lower Bound Convex Programs for Exact Sparse Optimization, [[hal-02013990 (version 1, Feb 2019)|https://hal.archives-ouvertes.fr/hal-02013990]]
**
*[33] P. Carpentier, J.-Ph. Chancelier, M. De Lara, T. Rigaut, Algorithms for two-time scales stochastic optimization with applications to long term management of energy storage, [[hal-02013969 (Feb 2019)|https://hal.archives-ouvertes.fr/hal-02013969]]
**
*[32] J.-Ph. Chancelier, Sébastien Furic, Pierre Weis, Translating Simulink Models to Modelica using the Nsp Platform. [[hal-01948681v2, version 2 (2019), version 1 (Dec. 2018)|https://hal.archives-ouvertes.fr/hal-01948681v2]]
** Published in [[Proceedings of the 13th International Modelica Conference, Regensburg, Germany, 2019|http://dx.doi.org/10.3384/ecp19157841]]
*[31] M. Akian, J.-Ph. Chancelier, B. Tran, A stochastic algorithm for deterministic multistage optimization problems [[hal-01964189 Oct 2018|https://hal.archives-ouvertes.fr/hal-01964189]]
**
*[30] J.-Ph. Chancelier, M. De Lara, ~Fenchel-Moreau Conjugation Inequalities with Three Couplings and Application to Stochastic Bellman Equation. [[hal-01760462, April 10 2018|https://hal.archives-ouvertes.fr/hal-01760462]]
** Published in Journal of Convex Analysis 26 (2019).
*[29] P. Carpentier, J.-Ph. Chancelier, M. De Lara, T. Martin, T. Rigaut. Time Blocks Decomposition of Multistage Stochastic Optimization Problems [[hal-01757113 (April 2018)|https://hal.archives-ouvertes.fr/hal-01757113]], [[hal-01757113v2|https://hal.archives-ouvertes.fr/hal-01757113v2]], [[hal-01757113v3 (May 2022)|https://hal.archives-ouvertes.fr/hal-01757113v3]]
** Accepted in Journal of Convex Analysis (special issue dedicated to Prof. Roger ~J-B Wets) (Feb. 2023)
*[28] V. Leclère, P. Carpentier, J.-Ph. Chancelier, A. Lenoir, F. Pacaud. Exact converging bounds for Stochastic Dual Dynamic Programming via Fenchel duality. [[hal-01744035, March 2018|https://hal-enpc.archives-ouvertes.fr/hal-01744035]]
** Published in SIAM Journal on Optimization Feb 2020.
*[27] F. Pacaud, P. Carpentier, J.-Ph. Chancelier, M. De Lara. Stochastic optimal control of a domestic microgrid equipped with solar panel and battery. [[hal-01688666, 2018|https://hal-enpc.archives-ouvertes.fr/hal-01688666]]
** Accepted for publication in Energy Systems (2022) under the modified title "Optimization of a domestic microgrid equipped with solar panel and battery: Model Predictive Control and Stochastic Dual Dynamic Programming approaches". 
*[26] H. Gérard, M. De Lara, J.-Ph. Chancelier. Equivalence Between Time Consistency and Nested Formula. [[Preprint Hal, Nov 2017|https://hal.archives-ouvertes.fr/hal-01645564v1]]
** Published in Annals of Operations Research (May 2019) [[Ann Oper Res 292, 627-647 (2020)|https://doi.org/10.1007/s10479-019-03276-1]]
*[25] T. Rigaut, P. Carpentier, J.-Ph. Chancelier, M. De Lara, J. Waeytens. Energy and Air Quality Management in a Subway Station using Stochastic Dynamic Optimization. [[arXiv 2018|https://arxiv.org/abs/1801.03017]]
** Published in [[IEEE Transactions on Power Systems| https://ieeexplore.ieee.org/document/8481586]]
*[24] F. Pacaud, P. Carpentier, J.-Ph. Chancelier, V. Leclère. Stochastic decomposition applied to large-scale hydro valleys management. [[Preprint Hal, Juin 2017|https://hal-enpc.archives-ouvertes.fr/hal-01526775]]
** Accepted by EJOR May 2018.
*[23] J.-Ph. Chancelier, R. Nikoukhah, A novel code generation methodology for block diagram modeler and simulators Scicos and VSS [[Preprint Hal, oct 2015|https://hal.archives-ouvertes.fr/hal-01213247v1]]
** ''Unpublished''
*[22] J.-Ph. Chancelier, Extensions and applications of ACF mappings [[Preprint Hal, nov 2011|http://hal.archives-ouvertes.fr/hal-00640756]]
** Published in Journal of Mathematical Analysis and Applications (March 2013) [[doi:10.1016/j.jmaa.2013.03.065|http://dx.doi.org/10.1016/j.jmaa.2013.03.065]].
*[21] P. Carpentier, J.-Ph. Chancelier, G. Cohen, M. De Lara, P. Girardeau. Dynamic consistency for Stochastic Optimal Control problems. [[Preprint Hal 2010|https://hal.archives-ouvertes.fr/hal-00483811/fr]]
** Published in Annals of Operations Research [[doi:10.1007/s10479-011-1027-8|http://dx.doi.org/10.1007/s10479-011-1027-8]].
*[20] J.-Ph. Chancelier, J. Lelong and B. Lapeyre. Using Premia and Nsp for Constructing a Risk Management Benchmark for Testing Parallel Architecture. [[Preprint Hal 2010|https://hal.archives-ouvertes.fr/hal-00447845]]
** Published in Concurrency and Computation: Practice and Experience. [[doi:10.1002/cpe.2893|http://onlinelibrary.wiley.com/doi/10.1002/cpe.2893/full]].
*[19] J.-Ph. Chancelier. A note on strong convergence to common fixed points of nonexpansive mappings in Hilbert spaces, [[Preprint Hal 2007|https://hal.archives-ouvertes.fr/hal-00418356]]
** ''Unpublished''
*[18] J.-Ph. Chancelier. T-class algorithms for pseudocontractions and k-strict pseudocontractions in Hilbert spaces, [[Preprint Hal 2007|https://hal.archives-ouvertes.fr/hal-00193621]]
** Published in Nonlinear Analysis: Theory, Methods & Applications, [[doi:10.1016/j.na.2009.04.049|http://dx.doi.org/10.1016/j.na.2009.04.049]].
*[17] J.-Ph. Chancelier. Iterative schemes for computing fixed points of nonexpansive mappings in banach spaces, [[Preprint Hal 2007|https://hal.archives-ouvertes.fr/hal-00184662]]
** Published in Journal of Mathematical Analysis and Applications Volume 353, Issue 1, 1 May 2009, Pages 141-153 [[doi:10.1016/j.jmaa.2008.11.041|http://dx.doi.org/10.1016/j.jmaa.2008.11.041]].
*[16] P. Carpentier, J.-Ph Chancelier, M. De Lara, and SOWG. Approximations of stochastic optimization problems subject to measurability constraints. [[Preprint Hal 2006|https://hal.archives-ouvertes.fr/hal-00975464]]
** Published in  SIAM J. Optim. Volume 19, Issue 4, pp. 1719-1734 (2009)	[[doi:10.1137/070692376|http://dx.doi.org/10.1137/070692376]].
*[15] J.-Ph. Chancelier and SOWG. Mosco-convergence of stochastic optimization problems involving both random variables and measurability constraints approximations. [[Preprint Cermics 2006|http://cermics.enpc.fr/cermics-rapports-recherche/2006/CERMICS-2006/CERMICS-2006-323.pdf]]
** ''Unpublished''
*[14] J.-P. Chancelier, M. De Lara, and A. De Palma.  Risk aversion in expected intertemporal discounted utilities bandit problems. 
** Published in Theory and Decision 2008. Theory and Decision, Springer US, 21.04.2008, vol. 67, no. 4, pp. 433-440 [[doi:10.1007/s11238-008-9105-3|http://springerlink.com/openurl.asp?genre=article&id=doi:10.1007/s11238-008-9105-3]].
*[13] J.-Ph. Chancelier, M. De Lara, and A. De Palma. Risk aversion and optimal strategies in a one-armed bandit problem: an application to road choice. [[Preprints Cermics 30 pages 2005|http://cermics.enpc.fr/cermics-rapports-recherche/2005/CERMICS-2005/CERMICS-2005-280.pdf]]. 
** Published in Transportation Science [[doi:10.1287/trsc.1060.0179|http://dx.doi.org/10.1287/trsc.1060.0179]].
*[12] J.P. Chancelier, M. Messaoud, and A. Sulem. A policy iteration algorithm for fixed point problems with nonexpansive operators. [[Preprints Cermics 2004|http://cermics.enpc.fr/cermics-rapports-recherche/2004/CERMICS-2004/CERMICS-2004-264.pdf]]. 
** Published in Math. Meth. Oper. Res. 2007.  [[doi:10.1007/s00186-006-0103-3|http://dx.doi.org/10.1007/s00186-006-0103-3]].
*[11] K. Barty, P. Carpentier, J.-Ph. Chancelier, G. Cohen, M. De Lara, and T. Guilbaud. Dual effect free stochastic controls. [[Preprints Cermics 26 pages, Mars 2003|http://cermics.enpc.fr/cermics-rapports-recherche/2003/CERMICS-2003/CERMICS-2003-242.pdf]]. 
** Published in Annals of Operation Research, 2004, [[doi:10.1007/s10479-006-6160-4|http://dx.doi.org/10.1007/s10479-006-6160-4]].
*[10] Tomasz R. Bielecki, ~Jean-Philippe Chancelier, Stanley R. Pliska, and Agnès Sulem. Risk sensitive portfolio optimization with transaction costs.  
** Journal of computational Finance, 8(1):39-65, 2004.
*[09] J.-P. Chancelier, B.Oksendal, and A.Sulem. Combined stochastic control and optimal stopping, and application to numerical approximation of combined stochastic and impulse control.
** Published in  Stochastic Financial Mathematics. Proc. Steklov Math. Inst.,  Vol. 237, pp 149 -173, editeur A.N. Shiryaev, Moscou, 2002.
*[08] J.-P. Chancelier, G. Chebbo, and E. ~Lucas-Aiguier. Estimation of settling velocities.  
** Published in Water Research, 32(11):3461-3471, 1998.
*[07] J.-P. Chancelier, M. Cohen De Lara, and F. Pacard. New insights in dynamical modeling of a secondary settler- I, flux  theory and steady states analysis.  
** Water Research, 31(8):1847-1856, 1997.
*[06] J.-P. Chancelier, M. Cohen De Lara, and F. Pacard. A stochastic approach to model bottom boundary conditions in a settling tank.  
** Stochastic Hydrology and Hydraulics, 11(6):449-457, 1997.
*[05] J.-P. Chancelier, M.Cohen De Lara, and F.Pacard. New insights in dynamical modeling of a secondary settler-  II, dynamical analysis.  
** Water Research, 31(8):1857-1866, 1997.
*[04] J.-P. Chancelier, M. Cohen De Lara, and F. Pacard. Existence of a solution in an age-dependent transport-diffusion pde:  a model of settler.  
** Mathematical Models and Methods in Applied Sciences,  5(3):267-278, 1995.
*[03] J.-P. Chancelier, M. Cohen De Lara, and F. Pacard. Equation de ~Fokker-Planck pour la densité d'un processus de  diffusion dans un ouvert régulier.  
** C.R. Acad. Sci. Paris, Série I Math., 321:1251-1256, 1995.
*[02] J.-P. Chancelier, M. Cohen De Lara, and F.Pacard. Analysis of a conservation pde with discontinuous flux: a model of settler.  
** SIAM J. of Applied Math., 54(4):954-995, 1994.
*[01] J.-P. Chancelier and A.Renaud. [[Daily generation scheduling: decomposition methods to solve the  hydraulic problems, 1994|papers/chancelier-renaud-1994.pdf]] [[hal-03636358, 1994|https://hal.archives-ouvertes.fr/hal-03636358]]
** International Journal of Electrical Power and Energy Systems,  16(3):175-181, 1994.

<<tabs txtPluginsTa
'Livres' "Livres" Livres
'Articles' "Articles" Preprints
'Communications' "Communications" Communications
>>
* [[ScicosLab Home Page|scilab-gtk-tiddly/mine.html]]. ~ScicosLab is the new name of ~ScilabGtk.
* [[http://www.scilabgtk.org|http://www.scilabgtk.org]]
* [[Code examples|code-book/index.html]] from the book: [[Modeling and Simulation in Scilab/Scicos|http://www.scicos.org/book.html]]
* [[Scilab cvs and toolboxes binaries|scilab/scilab.htm]]
* [[Scilab at Enpc|http://cermics.enpc.fr/scilab]]
* [[Journée Scilab 15 Octobre 2003|http://cermics.enpc.fr/scilab/journee-scilab]]

Page personnelle de ~Jean-Philippe Chancelier
[img[images/page-perso.png][Ossau]]
* Beaufortin (2008)
**  Roche Parsite 2106, départ de boudin 1306 par le col du pré (1703).
**  Roche pourrie 1750, départ de Molliessoulaz 1026.
**  Col de la roche plane (2094) départ de la frasse (1027).
* Belledone (2009)
** Belle étoile (2718), départ du pleyner 1558.
** Col du Mouchillon (2516), par les 7 laux, départ de la martinette 1074
** Col du Gleyzin (2565), départ le plan (1221).
* Oisan (2009)
** col perdu 
** crête de la Seyte par le vallon du fournel. 
* Les clefs (2010) 
** [[Pointe de la Québlette par le Sapey|http://www.skitour.fr/sorties/pointe-de-la-queblette,24680.html#sortie]].
** [[Dôme de Pouilly|http://www.skitour.fr/sorties/dome-de-pouilly,24687.html#sortie]]
* Beaufortin (2010)
**  Roche Parsite 2106, départ après boudin 1500 par le col du pré (1703). Arrêt à  100 m sous le sommet les conditions étant trop mauvaise, avalanche visible etc...
**  Cote 2000 sur la legete du Mirantin. Conditions avanlancheuse, nous ne prenons pas le risque d'aller au dela. Le lendemain nous faisons du ski de piste ... ski de rando fortement déconseillé !
* Les clefs (2011)
**  Pointe de Mandallaz (1100 m de d.). J'ai perdu un ski à  la descente, après une heure de recherche on est rentré et revenu le lendemain .... le ski était planté dans la neige à  30 mètres en deça de la zone que nous avions retournée (pelle sonde etc...). Bref tout content de retrouver mon Movement shaman, cela fini par un pot au champagne !
* Ailefroide, long climbing routes:
** Ecrin total (2010)
** Achtung, big copieur is watching you (Juillet 2012).
* Le Veyou (près de Saou et Saillant)
** Le Petit Ecolier au Veyou avec Fernando (Trois Becs), TD-, 5c obl. (6a max), 220 m (Oct 2012).
* Chamonix 
** Arête sud de l'aiguille du Moine.
** Aiguille Rouges: Tour des crochues [[Voie de Galbert|http://www.camptocamp.org/routes/53885/en/tour-des-crochues-voie-de-galbert]]
* Buoux, Hauteroche, Calanques, Orpierre, Taurac, (2012-2017)
* Jura bernois (2017)
** Le Paradis secteur Bornes Fontaines, La nostalgique en flèche avec Laury-Anne et Camille (5b, 5c, 5a+, 5b+, 5b+)
** Plagne: Les Mouches en flèche avec ~Laury-Anne et Camille (5b, 5c+, 5c+, 5b+, + première longueur en 6a en moulinette en attendant que L2 se libère). 
* Orpierre (2018) 
** Dièdre Sud 170m, 7 longueurs avec Elza (5c,5b,5b,5c,5b,5b,5b). Magnifique sauf la première longueur patinée et mouillée. 
** 4heures est avec Elza: Arnaques Blues (6a, 5a), Les éboueurs du vide (6a). La rencontre (3a, 4b,5b). 
** Le pélerin de Compostelle avec Daniel (5b+,6a, 5a). On n'a pas tous les jours 20ans avec Daniel (6a+, 6b) ? 
/***
|''Name:''|SparklinePlugin|
|''Description:''|Sparklines macro|
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};

//--
//-- Sparklines
//--

config.macros.sparkline = {};
config.macros.sparkline.handler = function(place,macroName,params)
{
	var data = [];
	var min = 0;
	var max = 0;
	var v;
	for(var t=0; t<params.length; t++) {
		v = parseInt(params[t]);
		if(v < min)
			min = v;
		if(v > max)
			max = v;
		data.push(v);
	}
	if(data.length < 1)
		return;
	var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
	box.title = data.join(",");
	var w = box.offsetWidth;
	var h = box.offsetHeight;
	box.style.paddingRight = (data.length * 2 - w) + "px";
	box.style.position = "relative";
	for(var d=0; d<data.length; d++) {
		var tick = document.createElement("img");
		tick.border = 0;
		tick.className = "sparktick";
		tick.style.position = "absolute";
		tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
		tick.style.left = d*2 + "px";
		tick.style.width = "2px";
		v = Math.floor(((data[d] - min)/(max-min)) * h);
		tick.style.top = (h-v) + "px";
		tick.style.height = v + "px";
		box.appendChild(tick);
	}
};


}
//}}}
Type the text for 'New Tiddler'
Out of the box, TiddlyWiki offers:
* Works with all major desktop [[browsers]] on Windows, Macintosh and Linux and many mobile browsers such as the Apple iPhone and the Nokia 770/N800
** You can SaveChanges with FireFox, [[Opera]], InternetExplorer for Windows, [[Safari]], and [[Camino]]
* The BackstageArea for handy access to authoring tools including [[importing|ImportTiddlers]] and [[synchronisation|http://www.tiddlywiki.org/wiki/Dev:Server_Adaptor_Mechanism]] of tiddlers with external files and servers
* Full text formatting including MonospacedText, ExtendedFormatting, NonWikiWordLinks, WikiWordEscape, PrettyLinks, SubHeadings, BulletPoints, NumberedBulletPoints, [[Tables]], BlockQuotes, HorizontalRules and the ability to use a CustomCssClass and  InlineHTML
* [img[tumbi.png][EmbeddedImages]]...EmbeddedImages
* [[Macros]] providing rich interactive features, including [[Sparklines]] and [[Gradients|GradientMacro]]
* InterfaceOptions and AdvancedOptions, including the ability to GenerateAnRssFeed, SaveBackups and AutoSave
* KeyboardShortcuts so you can finish editing a tiddler with Control-Enter or abandon it with Escape
* Extensive StartupParameters to control the behaviour of TiddlyWiki through specially crafted URLs
* There are [[translations]] of TiddlyWiki available in many languages, including [[Chinese]], [[French]], [[German]], [[Spanish]], [[Portuguese]]
The [[Community]] around TiddlyWiki has extended this basic functionality with a wide range of [[Plugins]] and TiddlyWikiAdaptations.
Tumbi is the name for [[bee|http://en.wikipedia.org/wiki/Bee]] in [[Kannada|http://en.wikipedia.org/wiki/Kannada_language]]. A nice [[tumbi picture|http://www.flickr.com/photos/14516334@N00/345009210]] can be found on [[Flickr|http://www.flickr.com]].