<!--{{{-->
<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
/*{{{*/
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]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.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:0px; top:0px;}

.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:0px 3px 0px 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:0px; padding-bottom:0px;}

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

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.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>>
|''Type:''|file|
|''URL:''|http://bob.mcelrath.org/tiddlyjsmath.html|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
Mailing address:

NTNU
N-7491 Trondheim
Norway

Visiting address:

NTNU
O.S.Bragstads pl.2, room C347
Trondheim
Norway

email: kimmo.kansanen (at) iet.ntnu.no
sip: kimmo.kansanen (at) iki.fi
tel:  +47 735 50214
fax: +47 735 92640
WhoIAm
LatestThings
Prospective PhD students: NTNU announces all new positions openly, and the selection process is a clear one.
New positions are always subject to available funding, so unless there are funds available, there are no positions, either.

Master students: I have both pre-thesis project topics (prosjektoppgave) and Master's thesis topics each year but if you have
interest in the general field but no definite ideas, you can contact me for a discussion.
This is a TiddlyWiki. To get started with a 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>>
Updated MyPublications, MyTeaching, added MyGroup 22.11.2012.
Updated MyPublications and MyTeaching 22.3.2011.
Updated the publications list. Up-to-date as of 17.2.2011.
Added support for Latex math. Let's see if it's any use.
Updated the publications list. Up-to-date once more 19.1.2009.
Uploaded this page 16.11.2007.
$\int \limits_0^\infty x dF(x)$

If you see that as nice math instead of LaTeX markup, also your fonts are working.
WhoIAm
ForStudents
ContactingMe
MyGroup
MyResearch
MyTeaching
MyPublications
OtherThings
GettingStarted
LatestThings
PhD students:
Reza Parseh (2011 -- ) 
Liqin Ding (2012 -- )

Co-supervised students:
Mark Haring (with Tor Arne Johansen, 2011 -- )
Nemanja Zdravkovic (with Goran Djordjevic, 2012 -- )
Bo Peng (with Hefeng Dong)
Journal publications 
8. Flåm, John Torjus, Chatterjee, Saikat, Kansanen, Kimmo, Ekman, Torbjörn, On MMSE estimation: A Linear Model under Gaussian Mixture Statistics., IEEE Transactions on Signal Processing. 2012; volume 60 (7). S. 3840-3845.,

7. A.N. Kim, K. Kansanen, “Analogue Transmission over a Two-hop Gaussian Cascade Network”,  IEEE Communication Letters, vol 14 , No 2, Feb 2010.

6. Prasanna Chaporkar, Kimmo Kansanen, Ralf R. Muller, "On the Delay-Energy Tradeoff in Multiuser Fading Channels," EURASIP Journal on Wireless Communications and Networking, vol. 2009, Article ID 198903, 14 pages, 2009. doi:10.1155/2009/198903.

5. J.Karjalainen & N.Veselinovic & K. Kansanen and T.Matsumoto “Iterative Frequency Domain Joint-Over-Antenna Detection in Multiuser MIMO”, IEEE Transactions on Wireless Communications, Volume 6,  Issue 10,  October 2007 Page(s):3620 - 3631 

4. K. Yen & N. Veselinovic & K. Kansanen and T. Matsumoto “Iterative Joint-over-Antenna Detection and WNRA Decoding in Single-Carrier Multiuser MIMO Systems” IEEE Transactions on Vehicular Technology, vol 56, No 2, Mar 2007, pp.742-755. 

3. K. Kansanen & T. Matsumoto, “An Analytical Method for MMSE MIMO Turbo Equalizer EXIT Chart Computation”, IEEE Transactions on Wireless Communications, IEEE Transactions on Wireless Communications, vol. 6, No 1, Jan 2007, pp. 59-63. 

2. K. Kansanen, C. Schneider, T. Matsumoto & R. S. Thomä, “Multilevel Coded QAM with MIMO Turbo-Equalization in Broadband Single-Carrier Signalling”. IEEE Transactions on Vehicular Technology, vol. 54, No 3, May 2005, pp. 954-966. 

1. M.Särestöniemi, T.Matsumoto, K.Kansanen & J.Iinatti,‘Turbo diversity based on SC/MMSE equalization”,IEEE Transactions on Vehicular Technology, vol. 54, no. 2, pp. 749–752, February 2005. 

Other publications
39. A. M. Cvetkovic, K. Kansanen, and G. T. Djordjevic, "Outage Analysis for Uncoordinated Decode-and-Forward Networks over Nakagami-m channels", 20th Telecommunications forum TELFOR 2012, Belgrade, Serbia, November 20-22.2012.

38. R. Parseh, S. Sanchez Acevedo, K. Kansanen, M. Molinas, T. A. Ramstad, " Real-time Compression of Measurements in Distribution Grids", IEEE Smart Grid Comm 2012, Nov 5th - 8th, 2012, Tainan City, Taiwan, (Symposium Best Paper Award)

37.  L. Vijayandran , Maite Brandt-Pearce, Kimmo Kansanen and Torbjörn Ekman, "Efficient State Estimation with Energy Harvesting and Fairness Control Using Stochastic Optimization", IEEE GLOBECOM, Houston, USA, Dec. 2011.

36. L. Vijayandran, K. Kansanen, M.Brandt-Pearce, T. Ekman, "Energy Efficient State Estimation Through Stochastic Optimization", The Twelfth IEEE International Workshop on Signal Processing Advances in Wireless Communications (SPAWC) 2011.

35. M.Butt,K.Kansanen,R.R.Müller,“IndividualPacketDeadlineConstrained Opportunistic Scheduling For a Multiuser System”, IEEE Vehicular Technology Conference (VTC) 2011 Spring.

34. M.Butt, K.Kansanen, R.R.Müller, “Hard Deadline Constrained Multiuser Scheduling for Random Arrivals”, IEEE Wireless Communications and Networking Conference (WCNC) 2011.

33. K. Kansanen, "Sensing based interference and data queue back-pressure approach for cognitive radio", IEEE International Symposium on Personal, Indoor and Mobile Radio Communications (PIMRC) 2010, Istanbul, Turkey.

32. K. Kansanen, A. N. Kim, R. Thobaben, J. Karlsson, “Low complexity bandwidth compression mappings for sensor networks”, International Symposium on Communications, Control and Signal Processing (invited paper), March 2010.

31. M.Brandt-Pearce, K.Kansanen and G.E.Øien, “Fast Distributed Resource Allocation for Multi-Cell Cognitive Radio Systems”, IEEE ICC 2010.

30. B.Zayen, A.Hayar and K.Kansanen, “Blind spectrum sensing for cognitive radio based on signal space dimension estimation”, IEEE Interna- tional Conference on Communications (ICC) 2009, Dresden, Germany, 14-18.6.2009.

29. K. Kansanen, R.Muller, "Multiuser diversity in channels with limited scatterers", IEEE 19th International Symposium on Personal, Indoor and Mobile Radio Communications, 2008. PIMRC 2008. 15-18 Sept. 2008 Page(s):1 - 5 

28. M. M. Butt, K. Kansanen, R.R. Muller;, "Provision of Maximum Delay Guarantee at Low Energy in a Multi-User Environment" IEEE 10th International Symposium on Spread Spectrum Techniques and Applications, 2008. ISSSTA '08. 25-28 Aug. 2008 Page(s):512 - 516 

27. M. Majid Butt, Kimmo Kansanen, Ralf R. Müller, "Multiuser Opportunistic Scheduling for Hard Delay Constrained Systems", Proc. IEEE Sarnoff Symposium, Princeton, USA, 28-30 April, 2008.

26. K. Kansanen and R.R. Müller, "On near-far gain in multiuser diversity systems", RAWNET 2008, 31.3.2008, Berlin, Germany.

25. P. Chaporkar, K. Kansanen, and R. R. Müller, “Channel and multiuser diversities in wireless systems: Delay-energy tradeoff ”, RAWNET 2007, Limassol, Cyprus, April 2007. 

24. P. Chaporkar, K. Kansanen, and R. R. Müller, “Power optimal scheduling for guaranteed throughput in multi-access fading channels”, ISIT 2007, Nice, France, June 2007. 

23. “Wireless Broadband Single-Carrier Systems with MMSE Turbo Equalization Receivers”, Doctoral thesis, University of Oulu, Oulu, Finland, 2005 (http://herkules.oulu.fi/isbn9514279336/). 

22. G.Auer et al. “D2.3: Assesment of Radio-link technologies”, IST-WINNER Deliverable 2005 

21. K. Kansanen & T. Matsumoto, "Turbo Equalisation of Multilevel Coded QAM", Signal Processing Advances in Wireless Communications (SPAWC) 2003, June 15-18, Rome, Italy. 

20. K.Kansanen, T.Matsumoto, C.Schneider & R.Thomä, “Frequency-domain MMSE Turbo Equalization of Multilevel Coded QAM – Convergence in Real Fields”, Personal Indoor and Mobile Radio Communications (PIMRC) 2005, Berlin, Germany, September 2005. 

19. R. Wohlgenannt, K. Kansanen, D.Tujkovic & T. Matsumoto, “Outage-based LDPC Code Design for SC/MMSE Turbo-Equalization”, IEEE Vehicular Technology Conference 2005, May-June 2005, Stockholm, Sweden, vol.1, pp. 505-509. 

18. J.Karjalainen, K.Kansanen, N.Veselinovic & T.Matsumoto, ’Frequency Domain Joint-over-Antenna MIMO Turbo Equalization’, 39th Asilomar Conference on Signals, Systems and Computers, Oct. 30 - Nov. 2. 2005, Pacific Grove, USA. 

17. K. Kansanen, M. Latva-aho & M. Juntti “Performance of Parallel Interference Cancellation in UTRA FDD Uplink”. 4th ACTS Mobile Communications Summit, Sorrento, Italy, June 8-11, 1999. 

16. K. Kansanen, J. Fan, M. Juntti & M. Latva-aho, Groupwise Interference Cancellation Receivers in Cellular WCDMA Networks. IEEE Vehicular Technology Conference, VTC2000-Spring, 15.-18.5.2000, Tokyo, Japan. Conference Proceedings, Vol. 2, pp. 936-940. 

15. K. Kansanen, J. Fan & M. Juntti, "Power Controlled DS-CDMA Uplink with a HD-PIC Receiver", The 11th International Symposium on Personal, Indoor and Mobile Radio Communications (PIMRC’00), 18.-21.9.2000, London, England. Vol 2, pp. 1425-1429. 

14. K. Kansanen, K. Kiiskilä & M. Juntti, "An LMMSE Receiver Structure and Performance in WCDMA Uplink", The 13th International Symposium on Personal, Indoor and Mobile Radio Communications (PIMRC’02), 15.-18.9.2002, Lisbon, Portugal. Vol 2, pp. 869-873. 

13. K. Kansanen & T. Matsumoto, "A Computationally Efficient MIMO Turbo-Equaliser", IEEE Vehicular Technology Conference, VTC2003-Spring, April 22-25 2003, Jeju, Korea, Vol 1, pp. 277-281. 

12. K.Kansanen & T.Matsumoto, “Frequency-Domain MMSE Turbo Equalization – Convergence in Spatially Correlated MIMO Channels”, Wireless Personal Multimedia Communications (WPMC) 2005, Aalborg, Denmark, September 2005. 

11. M. J. Juntti, M. Latva-aho, K. Kansanen & O.-P. Kaurahalme, “Performance of parallel interference cancellation for CDMA in estimated fading channels with delay mismatch”. IEEE International Symposium on Spread Spectrum Techniques and Applications (ISSSTA’98), Sun City, South Africa, September 2–4, 1998, vol. 3, pp. 936–940. 

10. M. J. Juntti, M. Latva-aho, K. Kansanen & O.-P. Kaurahalme, “Performance of Parallel Interference Cancellation for CDMA With Delay Estimation and Channel Coding”. FRAMES Workshop, Delft, The Netherlands, January 18-19, 1999. 

9. M. Juntti, K. Kansanen & M. Latva-aho, “Performance of Parallel Interference Cancellation for CDMA With Delay Estimation”. IEEE Vehicular Technology Conference (VTC’99), Houston, Texas, USA, May 16-20, 1999. 

8. C. S. Wijting, T. Ojanperä, M. J. Juntti, K. Kansanen & R. Prasad, “Groupwise multiuser detectors for multirate DS-CDMA”. IEEE Vehicular Technology Conference (VTC’99), Houston, USA, May 16–20, 1999. 

7. M. Latva-aho, M. Juntti & K. Kansanen , “Residual interference suppression in parallel interference cancellation receivers”. IEEE International Conference on Communications (ICC’99), Vancouver, Canada, June 6-10, 1999. 

6. B.Ng, D.Falconer, K.Kansanen & N.Veselinovic, “Frequency domain iterative methods for detection and estimation”, 2005 IST Summit, Dresden, Germany. 

5. K. Yen, N. Veselinovic, K. Kansanen & T. Matsumoto, “Multilevel Coded Modulation Based on Space-Time Weighted Nonbinary Repeat-Accumulate Codes in Broadband Single-Carrier MIMO Signalling,” International ITG/IEEE Workshop on Smart Antennas, Duisburg, Germany, Apr. 2005. 

4. M.Särestöniemi, T.Matsumoto & K.Kansanen, “A turbo diversity technique based on SC/MMSE equalizer”, IST Mobile & Wireless Telecommunications Summit 2003, vol.2, pp. 100–105. 

3. M.Särestöniemi, T.Matsumoto, K.Kansanen & C.Schneider, “Realistic performance evaluation for turbo diversity using field measurement data,”, International ITG/IEEE Workshop on Smart Antennas 2004, vol.1, pp. 138–143, Munchen, Germany. 

2. M.Särestöniemi, T.Matsumoto, K.Kansanen & C.Schneider,“Core matrix inversion techniques for SC/MMSE MIMO turbo equalization”, IEEE Vehicular Technology Conference, vol.1, pp. 394–398, Milan, Italy, May 2004.

1. J.Karjalainen, K.Kansanen, N.Veselinovic & T.Matsumoto, “Antenna-by-Antenna and Joint-over-Antenna MIMO Signal Detection Techniques fo r Turbo-Coded SC/MMSE Frequency Domain Equalization”, IEEE Vehicular Technology Conference 2005, May-June 2005, Stockholm, Sweden. 
The topics are roughly within the following categories
Communication and control: low latency communications to support control applications, physical layer algorithms, retransmission, and multiple access. Estimation over a channel. Applications into Smart Grid, especially phenomena related to renewable integration.

Advanced wireless systems
Cognitive radio, scheduling and resource allocation based on channel sensing, stochastic optimization based methods.
Spring 2013: TTT4115 Communication Theory

Fall 2012: TTT09, TTT02
Fall 2011: TTT09 and TT8106.

Fall 2009: [[TTT4125]] Information theory, Coding and Compression
Spring 2008: [[TTT4160 Mobile Communications |http://www.iet.ntnu.no/courses/ttt4160/]] (last year's pages).
[[Finnish society | http://trondheim-suomi.wikispaces.com/]] in Trondheim -- meet the Finns.
[[Brundalen Bandits | http://www.bandithockey.no/]] -- my hockey team.
/***
|Name|Plugin: jsMath|
|Created by|BobMcElrath|
|Email|my first name at my last name dot org|
|Location|http://bob.mcelrath.org/tiddlyjsmath.html|
|Version|1.5.1|
|Requires|[[TiddlyWiki|http://www.tiddlywiki.com]] &ge; 2.0.3, [[jsMath|http://www.math.union.edu/~dpvc/jsMath/]] &ge; 3.0|
!Description
LaTeX is the world standard for specifying, typesetting, and communicating mathematics among scientists, engineers, and mathematicians.  For more information about LaTeX itself, visit the [[LaTeX Project|http://www.latex-project.org/]].  This plugin typesets math using [[jsMath|http://www.math.union.edu/~dpvc/jsMath/]], which is an implementation of the TeX math rules and typesetting in javascript, for your browser.  Notice the small button in the lower right corner which opens its control panel.
!Installation
In addition to this plugin, you must also [[install jsMath|http://www.math.union.edu/~dpvc/jsMath/download/jsMath.html]] on the same server as your TiddlyWiki html file.  If you're using TiddlyWiki without a web server, then the jsMath directory must be placed in the same location as the TiddlyWiki html file.

I also recommend modifying your StyleSheet use serif fonts that are slightly larger than normal, so that the math matches surrounding text, and \\small fonts are not unreadable (as in exponents and subscripts).
{{{
.viewer {
  line-height: 125%;
  font-family: serif;
  font-size: 12pt;
}
}}}

If you had used a previous version of [[Plugin: jsMath]], it is no longer necessary to edit the main tiddlywiki.html file to add the jsMath <script> tag.  [[Plugin: jsMath]] now uses ajax to load jsMath.
!History
* 11-Nov-05, version 1.0, Initial release
* 22-Jan-06, version 1.1, updated for ~TW2.0, tested with jsMath 3.1, editing tiddlywiki.html by hand is no longer necessary.
* 24-Jan-06, version 1.2, fixes for Safari, Konqueror
* 27-Jan-06, version 1.3, improved error handling, detect if ajax was already defined (used by ZiddlyWiki)
* 12-Jul-06, version 1.4, fixed problem with not finding image fonts
* 26-Feb-07, version 1.5, fixed problem with Mozilla "unterminated character class".
* 27-Feb-07, version 1.5.1, Runs compatibly with TW 2.1.0+, by Bram Chen
!Examples
|!Source|!Output|h
|{{{The variable $x$ is real.}}}|The variable $x$ is real.|
|{{{The variable \(y\) is complex.}}}|The variable \(y\) is complex.|
|{{{This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.}}}|This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.|
|{{{This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.}}}|This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.|
|{{{Block formatted equations may also use the 'equation' environment \begin{equation}  \int \tan x = -\ln \cos x \end{equation} }}}|Block formatted equations may also use the 'equation' environment \begin{equation}  \int \tan x = -\ln \cos x \end{equation}|
|{{{Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} }}}|Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} |
|{{{I spent \$7.38 on lunch.}}}|I spent \$7.38 on lunch.|
|{{{I had to insert a backslash (\\) into my document}}}|I had to insert a backslash (\\) into my document|
!Code
***/
//{{{

// AJAX code adapted from http://timmorgan.org/mini
// This is already loaded by ziddlywiki...
if(typeof(window["ajax"]) == "undefined") {
  ajax = {
      x: function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}},
      gets: function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText}
  }
}

// Load jsMath
jsMath = {
  Setup: {inited: 1},          // don't run jsMath.Setup.Body() yet
  Autoload: {root: new String(document.location).replace(/[^\/]*$/,'jsMath/')}  // URL to jsMath directory, change if necessary
};
var jsMathstr;
try {
  jsMathstr = ajax.gets(jsMath.Autoload.root+"jsMath.js");
} catch(e) {
  alert("jsMath was not found: you must place the 'jsMath' directory in the same place as this file.  "
       +"The error was:\n"+e.name+": "+e.message);
  throw(e);  // abort eval
}
try {
  window.eval(jsMathstr);
} catch(e) {
  alert("jsMath failed to load.  The error was:\n"+e.name + ": " + e.message + " on line " + e.lineNumber);
}
jsMath.Setup.inited=0;  //  allow jsMath.Setup.Body() to run again

// Define wikifers for latex
config.formatterHelpers.mathFormatHelper = function(w) {
    var e = document.createElement(this.element);
    e.className = this.className;
    var endRegExp = new RegExp(this.terminator, "mg");
    endRegExp.lastIndex = w.matchStart+w.matchLength;
    var matched = endRegExp.exec(w.source);
    if(matched) {
        var txt = w.source.substr(w.matchStart+w.matchLength, 
            matched.index-w.matchStart-w.matchLength);
        if(this.keepdelim) {
          txt = w.source.substr(w.matchStart, matched.index+matched[0].length-w.matchStart);
        }
        e.appendChild(document.createTextNode(txt));
        w.output.appendChild(e);
        w.nextMatch = endRegExp.lastIndex;
    }
}

config.formatters.push({
  name: "displayMath1",
  match: "\\\$\\\$",
  terminator: "\\\$\\\$\\n?", // 2.0 compatability
  termRegExp: "\\\$\\\$\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

config.formatters.push({
  name: "inlineMath1",
  match: "\\\$", 
  terminator: "\\\$", // 2.0 compatability
  termRegExp: "\\\$",
  element: "span",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

var backslashformatters = new Array(0);

backslashformatters.push({
  name: "inlineMath2",
  match: "\\\\\\\(",
  terminator: "\\\\\\\)", // 2.0 compatability
  termRegExp: "\\\\\\\)",
  element: "span",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

backslashformatters.push({
  name: "displayMath2",
  match: "\\\\\\\[",
  terminator: "\\\\\\\]\\n?", // 2.0 compatability
  termRegExp: "\\\\\\\]\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

backslashformatters.push({
  name: "displayMath3",
  match: "\\\\begin\\{equation\\}",
  terminator: "\\\\end\\{equation\\}\\n?", // 2.0 compatability
  termRegExp: "\\\\end\\{equation\\}\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

// These can be nested.  e.g. \begin{equation} \begin{array}{ccc} \begin{array}{ccc} ...
backslashformatters.push({
  name: "displayMath4",
  match: "\\\\begin\\{eqnarray\\}",
  terminator: "\\\\end\\{eqnarray\\}\\n?", // 2.0 compatability
  termRegExp: "\\\\end\\{eqnarray\\}\\n?",
  element: "div",
  className: "math",
  keepdelim: true,
  handler: config.formatterHelpers.mathFormatHelper
});

// The escape must come between backslash formatters and regular ones.
// So any latex-like \commands must be added to the beginning of
// backslashformatters here.
backslashformatters.push({
    name: "escape",
    match: "\\\\.",
    handler: function(w) {
        w.output.appendChild(document.createTextNode(w.source.substr(w.matchStart+1,1)));
        w.nextMatch = w.matchStart+2;
    }
});

config.formatters=backslashformatters.concat(config.formatters);

window.wikify = function(source,output,highlightRegExp,tiddler)
{
    if(source && source != "") {
        if(version.major == 2 && version.minor > 0) {
            var wikifier = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);
            wikifier.subWikifyUnterm(output);
        } else {
            var wikifier = new Wikifier(source,formatter,highlightRegExp,tiddler);
            wikifier.subWikify(output,null);
        }
        jsMath.ProcessBeforeShowing();
    }
}
//}}}
the obligatory homepage
Kimmo Kansanen
The course book is David MacKay: Information theory, Inference and Learning algorithms.
An online version can be found [[here|http://www.inference.phy.cam.ac.uk/mackay/itila/]].

Lectures and exercises on Monday&Wednesday 10:15-12:00 in EL4.

"Give a company an idea, and they will have a product. Get them to recruit your student, and they will have a business."
I am an associate professor (førsteamanuensis) at NTNU (Trondheim, Norway) since February 2011.
I've been with the NTNU since August 2006 as a post-doctoral one or another.

I graduated December 2005 from University of Oulu, Finland.