diff --git a/doc/banded.htm b/doc/banded.htm index fe50d518..a9bb1aaf 100644 --- a/doc/banded.htm +++ b/doc/banded.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Banded Matrix -

-Banded Matrix

-

Banded Matrix

+

Banded Matrix

+
+

Banded Matrix

Description

The templated class banded_matrix<T, F, A> is the base container adaptor for banded matrices. For a (m x @@ -313,7 +316,7 @@ parameters for the adapted array are unbounded_array<T> , bounded_array<T> and std::vector<T> .

-

Banded Adaptor

+

Banded Adaptor

Description

The templated class banded_adaptor<M> is a banded matrix adaptor for other matrices.

@@ -568,5 +571,10 @@ the reversed banded_adaptor. or copy at http://www.boost.org/LICENSE_1_0.txt).

+ diff --git a/doc/blas.htm b/doc/blas.htm index 29f62854..843f26f1 100644 --- a/doc/blas.htm +++ b/doc/blas.htm @@ -6,13 +6,17 @@ - + + + +

Level 3 BLAS

+

@@ -440,5 +444,10 @@ Boost Software License, Version 1.0. or copy at http://www.boost.org/LICENSE_1_0.txt).

+ diff --git a/doc/bounded_array.htm b/doc/bounded_array.htm index cb4fc59f..a793bdfb 100644 --- a/doc/bounded_array.htm +++ b/doc/bounded_array.htm @@ -3,13 +3,16 @@ - + + + + Bounded Array; -

-Bounded Array Storage

-

Bounded Array

+

Bounded Array Storage

+
+

Bounded Array

Description

The templated class bounded_array<T, N, ALLOC> implements a bounded storage array. The bounded array is similar to a C++ array type in that its maximum size is bounded by N and is allocated on the stack instead of the heap. Similarly a bounded_array requires no secondary storage and ALLOC is only used to specify size_type and difference_type.

@@ -207,5 +210,10 @@ member inside this model of the concept. http://www.boost.org/LICENSE_1_0.txt ).

+ diff --git a/doc/container_concept.htm b/doc/container_concept.htm index 141f4e1a..4d2d33ca 100644 --- a/doc/container_concept.htm +++ b/doc/container_concept.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Container Concepts -

-Container Concepts

-

Vector

+

Container Concepts

+
+

Vector

Description

A Vector describes common aspects of dense, packed and sparse vectors.

@@ -208,7 +211,7 @@ The operator[] is added purely for convenience and compatibility with the std::vector. In uBLAS however, generally operator() is used for indexing because this can be used for both vectors and matrices.

-

Matrix

+

Matrix

Description

A Matrix describes common aspects of dense, packed and sparse matrices.

@@ -412,5 +415,10 @@ As a user you need not care about Matrix being a refinement of the Matr http://www.boost.org/LICENSE_1_0.txt ).

+ diff --git a/doc/expression_concept.htm b/doc/expression_concept.htm index 1599a374..f1b1cb3a 100644 --- a/doc/expression_concept.htm +++ b/doc/expression_concept.htm @@ -3,13 +3,16 @@ - + + + + Expression Concepts -

-Expression Concepts

-

Scalar Expression

+

Expression Concepts

+
+

Scalar Expression

Description

A Scalar Expression is an expression convertible to a scalar type.

@@ -89,7 +92,7 @@ evaluated scalar expression.

  • vector_scalar_unary
  • vector_scalar_binary
  • -

    Vector Expression

    +

    Vector Expression

    Description

    A Vector Expression is an expression evaluatable to a vector. Vector Expression provides an v.rend ().

  • matrix_vector_binary2
  • -

    Matrix Expression

    +

    Matrix Expression

    Description

    A Matrix Expression is an expression evaluatable to a matrix. Matrix Expression provides an m.rbegin2 () to m.rend2 http://www.boost.org/LICENSE_1_0.txt ).

    + diff --git a/doc/hermitian.htm b/doc/hermitian.htm index 5a915cbf..3c659a4f 100644 --- a/doc/hermitian.htm +++ b/doc/hermitian.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Hermitian Matrix -

    -Hermitian Matrix

    -

    Hermitian Matrix

    +

    Hermitian Matrix

    +
    +

    Hermitian Matrix

    Description

    The templated class hermitian_matrix<T, F1, F2, A> is the base container adaptor for hermitian matrices. @@ -320,7 +323,7 @@ Supported parameters for the adapted array are unbounded_array<T> , bounded_array<T> and std::vector<T> .

    -

    Hermitian Adaptor

    +

    Hermitian Adaptor

    Description

    The templated class hermitian_adaptor<M, F> is a hermitian matrix adaptor for other matrices.

    @@ -585,5 +588,10 @@ Supported parameters for the type of the hermitian adaptor are http://www.boost.org/LICENSE_1_0.txt ).

    + diff --git a/doc/index.htm b/doc/index.htm index 577bf107..49b72877 100644 --- a/doc/index.htm +++ b/doc/index.htm @@ -5,11 +5,15 @@ - + + + + Boost Basic Linear Algebra

    logo Basic Linear Algebra

    +

    uBLAS is a C++ template class library that provides BLAS level 1, 2, 3 functionality for dense, packed and sparse matrices. The design and implementation unify mathematical notation via @@ -402,5 +406,10 @@ prod<matrix_type > (B, C)).

    Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt ).

    + diff --git a/doc/iterator_concept.htm b/doc/iterator_concept.htm index 7789f8bc..0657df74 100644 --- a/doc/iterator_concept.htm +++ b/doc/iterator_concept.htm @@ -6,15 +6,18 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Iterator Concepts -

    -Iterator Concepts

    +

    Iterator Concepts

    +

    An Iterator is a restricted pointer-like object pointing into a vector or matrix container.

    -

    Indexed Bidirectional Iterator

    Description

    An Indexed Bidirectional Iterator is an iterator of a container @@ -293,7 +296,7 @@ operator

    -

    Indexed Random Access Iterator

    Description

    An Indexed Random Access Iterator is an iterator of a container @@ -523,7 +526,7 @@ it2 + (it1 - it2).

    -

    Indexed Bidirectional Column/Row Iterator

    Description

    An Indexed Bidirectional Column/Row Iterator is an iterator of a @@ -920,7 +923,7 @@ it2t.index1 () for all it2t with it2t ()

  • sparse_matrix::iterator1
  • sparse_matrix::iterator2
  • -

    Indexed Random Access Column/Row Iterator

    Description

    An Indexed Random Access Column/Row Iterator is an iterator of a @@ -1156,5 +1159,10 @@ it2 + (it1 - it2). http://www.boost.org/LICENSE_1_0.txt ).

    + diff --git a/doc/js/jquery-1.3.2.min.js b/doc/js/jquery-1.3.2.min.js new file mode 100644 index 00000000..b1ae21d8 --- /dev/null +++ b/doc/js/jquery-1.3.2.min.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
    ","
    "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

    ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
    ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
    ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
    ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/doc/js/jquery.toc-gw.js b/doc/js/jquery.toc-gw.js new file mode 100644 index 00000000..d48dd4be --- /dev/null +++ b/doc/js/jquery.toc-gw.js @@ -0,0 +1,166 @@ +/*! + * jQuery TOC Plugin v1.1.x based on + * samaxesJS JavaScript Library + * http://code.google.com/p/samaxesjs/ + * + * Copyright (c) 2008 samaxes.com + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * 2009-10-04, guwi17: modified and extended to meet uBLAS' needs + */ + +(function($) { + /* + * The TOC plugin dynamically builds a table of contents from the headings in + * a document and prepends legal-style section numbers to each of the headings. + */ + $.fn.toc = function(options) { + var opts = $.extend({}, $.fn.toc.defaults, options); + + return this.each(function() { + var toc = $(this).append('
      ').children('ul'); + var headers = {h1: 0, h2: 0, h3: 0, h4: 0, h5: 0, h6: 0}; + var index = 0; + var indexes = { + h1: (opts.exclude.match('h1') == null && $('h1').length > 0) ? ++index : 0, + h2: (opts.exclude.match('h2') == null && $('h2').length > 0) ? ++index : 0, + h3: (opts.exclude.match('h3') == null && $('h3').length > 0) ? ++index : 0, + h4: (opts.exclude.match('h4') == null && $('h4').length > 0) ? ++index : 0, + h5: (opts.exclude.match('h5') == null && $('h5').length > 0) ? ++index : 0, + h6: (opts.exclude.match('h6') == null && $('h6').length > 0) ? ++index : 0 + }; + + $(':header').not(opts.exclude).each(function() { + var linkId = ""; + if ($(this).is('h6')) { + checkContainer(headers.h6, toc); + updateNumeration(headers, 'h6'); + $(this).text(addNumeration(headers, 'h6', $(this).text())); + linkId = fixAnchor($(this)); + appendToTOC(toc, indexes.h6, linkId, $(this).text(), headers); + } else if ($(this).is('h5')) { + checkContainer(headers.h5, toc); + updateNumeration(headers, 'h5'); + $(this).text(addNumeration(headers, 'h5', $(this).text())); + linkId = fixAnchor($(this)); + appendToTOC(toc, indexes.h5, linkId, $(this).text(), headers); + } else if ($(this).is('h4')) { + checkContainer(headers.h4, toc); + updateNumeration(headers, 'h4'); + $(this).text(addNumeration(headers, 'h4', $(this).text())); + linkId = fixAnchor($(this)); + appendToTOC(toc, indexes.h4, linkId, $(this).text(), headers); + } else if ($(this).is('h3')) { + checkContainer(headers.h3, toc); + updateNumeration(headers, 'h3'); + $(this).text(addNumeration(headers, 'h3', $(this).text())); + linkId = fixAnchor($(this)); + appendToTOC(toc, indexes.h3, linkId, $(this).text(), headers); + } else if ($(this).is('h2')) { + checkContainer(headers.h2, toc); + updateNumeration(headers, 'h2'); + $(this).text(addNumeration(headers, 'h2', $(this).text())); + linkId = fixAnchor($(this)); + appendToTOC(toc, indexes.h2, linkId, $(this).text(), headers); + } else if ($(this).is('h1')) { + updateNumeration(headers, 'h1'); + $(this).text(addNumeration(headers, 'h1', $(this).text())); + linkId = fixAnchor($(this)); + appendToTOC(toc, indexes.h1, linkId, $(this).text(), headers); + } + }); + }); + }; + + /* + * Checks if the last node is an 'ul' element. + * If not, a new one is created. + */ + function checkContainer(header, toc) { + if (header == 0 && !toc.find(':last').is('ul')) { + toc.find('li:last').append('
        '); + } + }; + + /* + * Updates headers numeration. + */ + function updateNumeration(headers, header) { + $.each(headers, function(i, val) { + if (i == header) { + ++headers[i]; + } else if (i > header) { + headers[i] = 0; + } + }); + }; + + /* + * Prepends the numeration to a heading. + */ + function addNumeration(headers, header, text) { + var numeration = ''; + + $.each(headers, function(i, val) { + if (i <= header && headers[i] > 0) { + numeration += headers[i] + '.'; + } + }); + + return removeFinalDot(numeration) + ' ' + text; + }; + + function removeFinalDot(text) { + return (text||"").replace(/\.$/g, "" ) + } + + function fixAnchor(element) { + // use existing id by default + var linkId = element.attr('id'); + // next, look for an anchor and use its id or name + if ( !linkId ) { + element.find('> a:first').each( function() { + linkId = $(this).attr('id') || $(this).attr('name'); + }); + } + // next, use the text content as last resort + if ( !linkId ) { + linkId = (element.text()||"unknown").replace(/[^a-zA-Z0-9]/g,""); + } + + element.attr('id',linkId); + return linkId; + } + + /* + * Appends a new node to the TOC. + */ + function appendToTOC(toc, index, id, text, headers) { + var parent = toc; + + for (var i = 1; i < index; i++) { + if (parent.find('> li:last > ul').length == 0) { + parent = parent.append('
        • '); + } + parent = parent.find('> li:last > ul'); + } + if (id) { + parent.append('
        • ' + text + '
        • '); + } else { + parent.append('
        • ' + text + '
        • '); + } + }; + + $.fn.toc.defaults = {exclude: 'h1, h5, h6'} +})(jQuery); diff --git a/doc/matrix.htm b/doc/matrix.htm index 52393556..0c909c79 100644 --- a/doc/matrix.htm +++ b/doc/matrix.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Matrix -

          -Matrix

          -

          Matrix

          +

          Matrix

          +
          +

          Matrix

          Description

          The templated class matrix<T, F, A> is the base container adaptor for dense matrices. For a (m x @@ -302,7 +305,7 @@ for the storage organization are row_major and for the storage array are unbounded_array<T> , bounded_array<T> and std::vector<T> .

          -

          Identity Matrix

          +

          Identity Matrix

          Description

          The templated class identity_matrix<T, ALLOC> represents identity matrices. For a (m x n)-dimensional @@ -452,7 +455,7 @@ end of the reversed identity_matrix. -

          Zero Matrix

          +

          Zero Matrix

          Description

          The templated class zero_matrix<T, ALLOC> represents zero matrices. For a (m x n)-dimensional zero matrix and @@ -598,7 +601,7 @@ end of the reversed zero_matrix. -

          Scalar Matrix

          +

          Scalar Matrix

          Description

          The templated class scalar_matrix<T, ALLOC> represents scalar matrices. For a (m x n)-dimensional @@ -756,5 +759,10 @@ end of the reversed scalar_matrix. http://www.boost.org/LICENSE_1_0.txt ).

          + diff --git a/doc/matrix_expression.htm b/doc/matrix_expression.htm index 9aa92d4d..3960dec6 100644 --- a/doc/matrix_expression.htm +++ b/doc/matrix_expression.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Matrix Expressions -

          -Matrix Expressions

          -

          Matrix Expression

          +

          Matrix Expressions

          +
          +

          Matrix Expression

          Description

          The templated class matrix_expression<E> is required to be a public base of all classes which model the Matrix Expression concept.

          @@ -60,7 +63,7 @@ const

          Notes

          The operator[], row, column, range, slice and project functions have been removed. Use the free functions defined in matrix proxy instead.

          -

          Matrix Container

          +

          Matrix Container

          Description

          The templated class matrix_container<C> is required to be a public base of all classes which model the Matrix concept. @@ -107,7 +110,7 @@ const -

          Matrix References

          +

          Matrix References

          Reference

          Description

          The templated class matrix_reference<E> @@ -256,7 +259,7 @@ the reversed expression. -

          Matrix Operations

          +

          Matrix Operations

          Unary Operation Description

          Description

          The templated classes matrix_unary1<E, F> and @@ -802,7 +805,7 @@ int main () { std::cout << m * 2.0 << std::endl; } -

          Matrix Vector Operations

          +

          Matrix Vector Operations

          Binary Operation Description

          Description

          The templated classes matrix_vector_binary1<E1, E2, @@ -1143,7 +1146,7 @@ int main () { std::cout << solve (v, m, lower_tag ()) << std::endl; } -

          Matrix Matrix Operations

          +

          Matrix Matrix Operations

          Binary Operation Description

          Description

          The templated class matrix_matrix_binary<E1, E2, @@ -1416,5 +1419,10 @@ int main () { http://www.boost.org/LICENSE_1_0.txt ).

          + diff --git a/doc/matrix_proxy.htm b/doc/matrix_proxy.htm index d3f790b6..56e774d9 100644 --- a/doc/matrix_proxy.htm +++ b/doc/matrix_proxy.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Matrix Proxies -

          -Matrix Proxies

          -

          Matrix Row

          +

          Matrix Proxies

          +
          +

          Matrix Row

          Description

          The templated class matrix_row<M> allows addressing a row of a matrix.

          @@ -233,7 +236,7 @@ int main () { } } -

          Matrix Column

          +

          Matrix Column

          Description

          The templated class matrix_column<M> allows addressing a column of a matrix.

          @@ -455,7 +458,7 @@ int main () { } } -

          Vector Range

          +

          Vector Range

          Description

          The templated class matrix_vector_range<M> allows addressing a sub vector of a matrix.

          @@ -641,7 +644,7 @@ the reversed matrix_vector_range. -

          Vector Slice

          +

          Vector Slice

          Description

          The templated class matrix_vector_slice<M> allows addressing a sliced sub vector of a matrix.

          @@ -827,7 +830,7 @@ the reversed matrix_vector_slice. -

          Matrix Range

          +

          Matrix Range

          Description

          The templated class matrix_range<M> allows addressing a sub matrix of a matrix.

          @@ -1118,7 +1121,7 @@ int main () { std::cout << project (m, range (0, 3), range (0, 3)) << std::endl; } -

          Matrix Slice

          +

          Matrix Slice

          Description

          The templated class matrix_slice<M> allows addressing a sliced sub matrix of a matrix.

          @@ -1416,5 +1419,10 @@ int main () { http://www.boost.org/LICENSE_1_0.txt ).

          + diff --git a/doc/matrix_sparse.htm b/doc/matrix_sparse.htm index f22ba9f4..e08781ea 100644 --- a/doc/matrix_sparse.htm +++ b/doc/matrix_sparse.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Sparse Matrix -

          -Sparse Matricies

          -

          Mapped Matrix

          +

          Sparse Matricies

          +
          +

          Mapped Matrix

          Description

          The templated class mapped_matrix<T, F, A> is the base container adaptor for sparse matricies using element maps. @@ -316,7 +319,7 @@ parameters for the adapted array are map_array<std::size_t, T> and map_std<std::size_t, T>. The latter is equivalent to std::map<std::size_t, T>.

          -

          Compressed Matrix

          +

          Compressed Matrix

          Description

          The templated class compressed_matrix<T, F, IB, IA, TA> is the base container adaptor for compressed @@ -636,7 +639,7 @@ Supported parameters for the adapted array are unbounded_array<> , bounded_array<> and std::vector<> .

          -

          Coordinate Matrix

          +

          Coordinate Matrix

          Description

          The templated class coordinate_matrix<T, F, IB, IA, TA> is the base container adaptor for compressed @@ -971,5 +974,10 @@ Supported parameters for the adapted array are http://www.boost.org/LICENSE_1_0.txt ).

          + diff --git a/doc/operations_overview.htm b/doc/operations_overview.htm index 01d5304d..ecb7ace1 100644 --- a/doc/operations_overview.htm +++ b/doc/operations_overview.htm @@ -7,12 +7,15 @@ - + + + + uBLAS operations overview -

          -Overview of Matrix and Vector Operations

          +

          Overview of Matrix and Vector Operations

          +
          Contents:
          @@ -22,7 +25,7 @@ Overview of Matrix and Vector Operations
          Speed Improvements
          -

          Definitions:

          +

          Definitions

          @@ -39,7 +42,7 @@ Overview of Matrix and Vector Operations
          A, B, C are slices, e.g. slice(0, 1, 3)
          -

          Basic Linear Algebra

          +

          Basic Linear Algebra

          standard operations: addition, subtraction, multiplication by a scalar

          @@ -78,7 +81,7 @@ w = conj(u); w = real(u); w = imag(u); C = trans(A); C = conj(A); C = herm(A); C = real(A); C = imag(A);
          -

          Advanced functions

          +

          Advanced functions

          norms

          @@ -126,7 +129,7 @@ opb_prod(A, B, C, false); // C += A * B may give a speedup if A has less columns than rows, because the product is computed as a sum of outer products.

          -

          Submatrices, Subvectors

          +

          Submatrices, Subvectors

          Accessing submatrices and subvectors via proxies using project functions:

          
           w = project(u, r);         // the subvector of u specifed by the index range r
          @@ -178,7 +181,7 @@ the column with a slice with stride 0 thus:
          slice(0,0,2));

          -

          Speed improvements

          +

          Speed improvements

          Matrix / Vector assignment

          If you know for sure that the left hand expression and the right hand expression have no common storage, then assignment has @@ -249,5 +252,10 @@ Winkler, Michael Stevens
          http://www.boost.org/LICENSE_1_0.txt ).

          + diff --git a/doc/options.htm b/doc/options.htm index 8826ec6c..90e4e8f0 100644 --- a/doc/options.htm +++ b/doc/options.htm @@ -5,11 +5,15 @@ + + + Boost Basic Linear Algebra - Configuration Options

          logoBoost Basic Linear Algebra - Configuration Options

          +
          + diff --git a/doc/overview.htm b/doc/overview.htm index eff82916..60fce76c 100644 --- a/doc/overview.htm +++ b/doc/overview.htm @@ -2,17 +2,18 @@ - - - + + + + + + uBLAS Overview -

          logo -uBLAS Overview

          -

          Rationale

          +

          logouBLAS Overview

          +
          +

          Rationale

          It would be nice if every kind of numeric software could be written in C++ without loss of efficiency, but unless something can be found that achieves this without compromising the C++ type @@ -22,7 +23,7 @@ architecture-specific extensions (Bjarne Stroustrup).

          level of basic linear algebra constructions with matrices and vectors and their corresponding abstract operations. The primary design goals were:

          -
            +
            • mathematical notation
            • efficiency
            • functionality
            • @@ -34,7 +35,7 @@ acceptable.

              Resources

              The development of this library was guided by a couple of similar efforts:

              -
                +
                • BLAS by Jack Dongarra et al.
                • Blitz++ by Todd @@ -264,7 +265,7 @@ development cycle. Switching from debug mode to release mode is controlled by the NDEBUG preprocessor symbol of <cassert>.

                  -

                  Functionality

                  +

                  Functionality

                  Every C++ library supporting linear algebra will be measured against the long-standing Fortran package BLAS. We now describe how @@ -955,5 +956,10 @@ w.r.t. alias assumptions remains visible, too.

                  http://www.boost.org/LICENSE_1_0.txt
                  ).

                  + diff --git a/doc/products.htm b/doc/products.htm index f3178c7d..63a396ed 100644 --- a/doc/products.htm +++ b/doc/products.htm @@ -6,13 +6,16 @@ - + + + + -

                  -Special Products

                  +

                  Special Products

                  +

                  Functions

                  @@ -307,5 +310,10 @@ Joerg Walter, Gunter Winkler
                  http://www.boost.org/LICENSE_1_0.txt ).

                  + diff --git a/doc/range.htm b/doc/range.htm index 843fbead..5e4224c5 100644 --- a/doc/range.htm +++ b/doc/range.htm @@ -3,13 +3,16 @@ - + + + + Range and slice -

                  -Range and Slice Storage

                  -

                  Range<SizeType,DistanceType>

                  +

                  Range and Slice Storage

                  +
                  +

                  Range<SizeType,DistanceType>

                  Description

                  The class range specifies a range of indicies. The range is a sequence of indices from a start value to stop value. The indices increase by one and exlude the stop value. @@ -101,7 +104,7 @@ end of the reversed range.

                • start () <= stop ()
                -

                Slice<SizeType,DistanceType>

                +

                Slice<SizeType,DistanceType>

                Description

                The class slice specifies a 'slice' of indicies. Slices are more general then ranges, the stride allows the sequence of indicies to increase and decrease by the specified amount between element. @@ -217,5 +220,10 @@ value must be representable as the size_type. http://www.boost.org/LICENSE_1_0.txt ).

                + diff --git a/doc/release_notes.htm b/doc/release_notes.htm index ef16d172..6cb560f7 100644 --- a/doc/release_notes.htm +++ b/doc/release_notes.htm @@ -4,7 +4,10 @@ - + + + + Boost Basic Linear Algebra - Release Notes @@ -13,6 +16,7 @@ +

                Release 1.41.1

                @@ -31,11 +35,15 @@ href="options.htm">preprocessor options page.
                • [3293]Fix resizing problem in identity_matrix
                • +
                • [3499]Add DefaultConstructible to concept checks +
                • +
                • [3501]Add inline to free functions in concepts.hpp +
                -

                Release 1.40.0

                +

                Release 1.40.0 and before

                  -
                • This page was created.
                • +
                • Release notes were not available in this form.

                @@ -46,8 +54,10 @@ href="options.htm">preprocessor options page. ).

                - -Last modified: Wed Sep 16 23:18:50 CEST 2009 - + diff --git a/doc/storage_concept.htm b/doc/storage_concept.htm index 64efe3db..4d52a699 100644 --- a/doc/storage_concept.htm +++ b/doc/storage_concept.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Storage concept -

                -Storage concept

                -

                Storage concept

                +

                Storage concept

                +
                +

                Storage concept

                Description

                Storage is a variable-size container whose elements are arranged in a strict linear order.

                Storage extends the STL Container concept with some STL Sequence-like functionality. The main difference with @@ -145,5 +148,10 @@ each element value may be a previously assigned value or default construced valu ).

                + \ No newline at end of file diff --git a/doc/storage_sparse.htm b/doc/storage_sparse.htm index e8a42f12..a16e1097 100644 --- a/doc/storage_sparse.htm +++ b/doc/storage_sparse.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Sparse Storage -

                -Sparse Storage

                -

                Default Standard Map

                +

                Sparse Storage

                +
                +

                Default Standard Map

                Description

                The templated class map_std<I, T, ALLOC> provides a wrapper for the standard library associative container @@ -66,7 +69,7 @@ int main () { Container.

                Public base classes

                std::map

                -

                Map Array

                +

                Map Array

                Description

                The templated class map_array<I, T, ALLOC> implements a std::map like associative container as a sorted array. It therefore some of the Associative Container interface without having the same semantics as an std::map.

                At any time the map_array has a capacity up to which new element can be inserted. @@ -276,5 +279,10 @@ the reversed map_array. http://www.boost.org/LICENSE_1_0.txt ).

                + diff --git a/doc/symmetric.htm b/doc/symmetric.htm index 11110fad..27af0390 100644 --- a/doc/symmetric.htm +++ b/doc/symmetric.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Symmetric Matrix -

                -Symmetric Matrix

                -

                Symmetric Matrix

                +

                Symmetric Matrix

                +
                +

                Symmetric Matrix

                Description

                The templated class symmetric_matrix<T, F1, F2, A> is the base container adaptor for symmetric matrices. @@ -310,7 +313,7 @@ Supported parameters for the adapted array are unbounded_array<T> , bounded_array<T> and std::vector<T> .

                -

                Symmetric Adaptor

                +

                Symmetric Adaptor

                Description

                The templated class symmetric_adaptor<M, F> is a symmetric matrix adaptor for other matrices.

                @@ -576,5 +579,10 @@ Supported parameters for the type of the symmetric adaptor are http://www.boost.org/LICENSE_1_0.txt ).

                + diff --git a/doc/triangular.htm b/doc/triangular.htm index f2ff474c..5e0a4ddf 100644 --- a/doc/triangular.htm +++ b/doc/triangular.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Triangular Matrix -

                -Triangular Matrix

                -

                Triangular Matrix

                +

                Triangular Matrix

                +
                +

                Triangular Matrix

                Description

                The templated class triangular_matrix<T, F1, F2, A> is the base container adaptor for triangular matrices. @@ -326,7 +329,7 @@ Supported parameters for the adapted array are unbounded_array<T> , bounded_array<T> and std::vector<T> .

                -

                Triangular Adaptor

                +

                Triangular Adaptor

                Description

                The templated class triangular_adaptor<M, F> is a triangular matrix adaptor for other matrices.

                @@ -590,5 +593,10 @@ and unit_upper .

                http://www.boost.org/LICENSE_1_0.txt ).

                + diff --git a/doc/types_overview.htm b/doc/types_overview.htm index d87b7fef..b68a7ce0 100644 --- a/doc/types_overview.htm +++ b/doc/types_overview.htm @@ -5,12 +5,15 @@ - + + + + Types Overview -

                -Overview of Matrix- and Vector-Types

                +

                Overview of Matrix- and Vector-Types

                +
                Contents:
                @@ -22,7 +25,7 @@ Overview of Matrix- and Vector-Types
                -

                Notation:

                +

                Notation

                @@ -51,7 +54,7 @@ strict_upper look at the section "storage layout".
                T
                -

                Vectors

                +

                Vectors

                @@ -119,7 +122,7 @@ value.

                Note: the default types are defined in boost/numeric/ublas/fwd.hpp.

                -

                Vector Proxies

                +

                Vector Proxies

                @@ -154,7 +157,7 @@ vector v containing all elements specified by
                -

                Matrices

                +

                Matrices

                @@ -283,7 +286,7 @@ unbounded_array<coordinate_vector<double> > >Note: the default types are defined in boost/numeric/ublas/fwd.hpp.

                -

                Matrix Proxies

                +

                Matrix Proxies

                @@ -331,7 +334,7 @@ the matrix m. -

                Special Storage Layouts

                +

                Special Storage Layouts

                The library supports conventional dense, packed and basic sparse @@ -568,5 +571,10 @@ Winkler, Michael Stevens
                http://www.boost.org/LICENSE_1_0.txt ).

                + diff --git a/doc/ublas.css b/doc/ublas.css index 9ce0edb0..1531be7f 100644 --- a/doc/ublas.css +++ b/doc/ublas.css @@ -7,31 +7,53 @@ * (See accompanying file LICENSE_1_0.txt * or copy at http://www.boost.org/LICENSE_1_0.txt). */ - - table { - border-width: medium; - background-color: #F8F8F8; - margin:1em; + border-width: medium; + background-color: #F8F8F8; + margin: 1em; } td { - padding-left: 0.5em; - padding-right:0.5em; + padding-left: 0.5em; + padding-right: 0.5em; } th { - text-align:left; -} - -pre.screen { - border:1px solid #DCDCDC; - display:block; - font-size:9pt; - margin:1pc 4% 0; - padding:0.5pc; + text-align: left; } -p.credit { - font-style: italic; +pre.screen { + border: 1px solid #DCDCDC; + display: block; + font-size: 9pt; + margin: 1pc 4% 0; + padding: 0.5pc; } + +p.credit { + font-style: italic; +} + +@media print { + div.toc { display: none; } +} + +div.toc { + margin: 10px; + padding: 3px; +} + +div#toc ul { + list-style: none; + margin: 1px; + padding-left: 1em; + margin-bottom: 0.25em; +} + +div#toc ul li ul { + margin-bottom: 0.25em; +} + +div#toc ul li ul li ul { + margin-bottom: 0.25em; +} \ No newline at end of file diff --git a/doc/unbounded_array.htm b/doc/unbounded_array.htm index 19626730..bd49abce 100644 --- a/doc/unbounded_array.htm +++ b/doc/unbounded_array.htm @@ -3,13 +3,16 @@ - + + + +Unbounded array -

                -Unbounded Array Storage

                -

                Unbounded Array

                +

                Unbounded Array Storage

                +
                +

                Unbounded Array

                Description

                The templated class unbounded_array<T, ALLOC> implements a unbounded storage array using an allocator. The unbounded array is similar to a std::vector in that in can grow in size beyond any fixed bound. @@ -207,5 +210,10 @@ the unbounded_array. http://www.boost.org/LICENSE_1_0.txt ).

                + diff --git a/doc/vector.htm b/doc/vector.htm index de920542..ed73dc1f 100644 --- a/doc/vector.htm +++ b/doc/vector.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + +Vector -

                -Vector

                -

                Vector

                +

                Vector

                +
                +

                Vector

                Description

                The templated class vector<T, A> is the base container adaptor for dense vectors. For a n-dimensional @@ -348,7 +351,7 @@ the reversed vector. for the Storage array are unbounded_array<T> , bounded_array<T> and std::vector<T> .

                -

                Unit Vector

                +

                Unit Vector

                Description

                The templated class unit_vector<T, ALLOC> represents canonical unit vectors. For the k-th @@ -482,7 +485,7 @@ end of the reversed unit_vector.

                -

                Zero Vector

                +

                Zero Vector

                Description

                The templated class zero_vector<T, ALLOC> represents zero vectors. For a n-dimensional zero vector and 0 @@ -607,7 +610,7 @@ end of the reversed zero_vector. -

                Scalar Vector

                +

                Scalar Vector

                Description

                The templated class scalar_vector<T, ALLOC> represents scalar vectors. For a n-dimensional scalar @@ -743,5 +746,10 @@ end of the reversed scalar_vector. http://www.boost.org/LICENSE_1_0.txt ).

                + diff --git a/doc/vector_expression.htm b/doc/vector_expression.htm index 7f5d8c88..82c207f9 100644 --- a/doc/vector_expression.htm +++ b/doc/vector_expression.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Vector Expressions -

                -Vector Expressions

                -

                Vector Expression

                +

                Vector Expressions

                +
                +

                Vector Expression

                Description

                The templated class vector_expression<E> is required to be a public base of all classes which model the Vector Expression concept.

                @@ -61,7 +64,7 @@ const

                Notes

                The range, slice and project functions have been removed. Use the free functions defined in vector proxy instead.

                -

                Vector Container

                +

                Vector Container

                Description

                The templated class vector_container<C> is required to be a public base of all classes which model the Vector concept. @@ -109,7 +112,7 @@ const -

                Vector References

                +

                Vector References

                Reference

                Description

                The templated class vector_reference<E> @@ -211,7 +214,7 @@ the reversed expression. -

                Vector Operations

                +

                Vector Operations

                Unary Operation Description

                Description

                The templated class vector_unary<E, F> @@ -820,7 +823,7 @@ int main () { std::cout << v * 2.0 << std::endl; }

          -

          Vector Reductions

          +

          Vector Reductions

          Unary Reductions

          Prototypes

          @@ -957,5 +960,10 @@ int main () {
                 http://www.boost.org/LICENSE_1_0.txt
              ).
           

          + diff --git a/doc/vector_proxy.htm b/doc/vector_proxy.htm index 648cbd0c..b5193224 100644 --- a/doc/vector_proxy.htm +++ b/doc/vector_proxy.htm @@ -6,13 +6,16 @@ "HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" /> - + + + + Vector Proxies -

          -Vector Proxies

          -

          Vector Range

          +

          Vector Proxies

          +
          +

          Vector Range

          Description

          The templated class vector_range<V> allows addressing a sub-range of a vector's element.

          @@ -259,7 +262,7 @@ int main () { std::cout << project (v, range (0, 3)) << std::endl; }
          -

          Vector Slice

          +

          Vector Slice

          Description

          The templated class vector_slice<V> allows addressing a slice of a vector.

          @@ -515,5 +518,10 @@ int main () { http://www.boost.org/LICENSE_1_0.txt ).

          + diff --git a/doc/vector_sparse.htm b/doc/vector_sparse.htm index 7659ccec..628a5b41 100644 --- a/doc/vector_sparse.htm +++ b/doc/vector_sparse.htm @@ -7,12 +7,15 @@ -Sparse Vector + + + + -

          -Sparse Vector

          -

          Mapped Vector

          +

          Sparse Vector

          +
          +

          Mapped Vector

          Description

          The templated class mapped_vector<T, A> is the base container adaptor for sparse vectors using element maps. For a @@ -255,7 +258,7 @@ parameters for the adapted array are map_array<std::size_t, T> and map_std<std::size_t, T>. The latter is equivalent to std::map<std::size_t, T>.

          -

          Compressed Vector

          +

          Compressed Vector

          Description

          The templated class compressed_vector<T, IB, IA, TA> is the base container adaptor for compressed vectors. @@ -514,7 +517,7 @@ Supported parameters for the adapted array are unbounded_array<> , bounded_array<> and std::vector<> .

          -

          Coordinate Vector

          +

          Coordinate Vector

          Description

          The templated class coordinate_vector<T, IB, IA, TA> is the base container adaptor for compressed vectors. @@ -788,5 +791,10 @@ Supported parameters for the adapted array are http://www.boost.org/LICENSE_1_0.txt ).

          +