+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ecldoc/Templates/html/content.tpl.html b/ecldoc/Templates/html/content.tpl.html
new file mode 100644
index 0000000..0790199
--- /dev/null
+++ b/ecldoc/Templates/html/content.tpl.html
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {%- for def in defn_tree recursive -%}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ecldoc/Templates/html/css/simple-sidebar.css b/ecldoc/Templates/html/css/simple-sidebar.css
new file mode 100644
index 0000000..f0997ab
--- /dev/null
+++ b/ecldoc/Templates/html/css/simple-sidebar.css
@@ -0,0 +1,252 @@
+ body {
+ overflow-x: hidden;
+ }
+
+
+ .topbar {
+ background: #1034A6;
+ color : #FFFFFF;
+ }
+
+.ham {
+ color : #FFFFFF;
+ }
+ .ham:hover {
+ background: #FFFFFF;
+ color : #000000;
+ }
+
+ .ham:active,
+ .ham:focus {
+ background: #FFFFFF;
+ color : #000000;
+ }
+
+.page-header {
+ border-color: #000;
+}
+
+.desc-panel {
+ border-radius: 0px;
+ border : 0px;
+ border-left: 1px solid;
+ border-color: #041451;
+ box-shadow: none;
+}
+
+.panel-group .panel+.panel {
+ margin-top: 20px;
+}
+
+.desc-panel > .panel-heading {
+ background: #e5e6e8;
+ border-radius: 0px;
+}
+
+.desc-panel-heading {
+ padding : 0px;
+ overflow : auto;
+ height : auto;
+ border-radius: 0px;
+ background: #e5e6e8;
+}
+
+.desc-panel-body {
+ background: #f9f9f9;
+}
+
+.desc-panel-footer {
+ padding-left : 10px;
+ padding-right: 0px;
+ padding-bottom: 1px;
+}
+
+.desc-panel-group {
+ margin : 0px;
+}
+
+.desc-type {
+ font-size : 16px;
+ color : #FFF;
+ font-weight: bold;
+ background: #041051;
+ width : 10%;
+ float : left;
+ padding : 6px;
+}
+
+.desc-sign {
+ font-size: 16px;
+ background: #e5e6e8;
+ color : #000;
+ width : 70%;
+ float : left;
+ padding: 6px;
+}
+
+.desc-btns {
+ float : left;
+ height : 100%;
+}
+
+.inherittype {
+ background : #C40233;
+ color : #FFF;
+ padding : 4px;
+ border-radius: 3px;
+ margin-left: 6px;
+ margin-right: 6px;
+}
+
+.doc-type {
+ font-size : 16px;
+ color : #111;
+ font-weight: bold;
+ background: #F4A966;
+ height : 100%;
+ width : 10%;
+ float : left;
+ padding : 6px;
+}
+
+.sign-list {
+ font-size: 16px;
+ background: #eaecef;
+}
+
+.ret {
+ width : 20%;
+ color : #d80d0d;
+}
+
+.name {
+ width : 10%;
+ font-weight: bold;
+ color : #000000;
+}
+
+.param {
+ width : 70%;
+ color : #550982;
+}
+
+
+/* Toggle Styles */
+
+#wrapper {
+ padding-left: 0;
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ -o-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+
+#wrapper.toggled {
+ padding-left: 250px;
+}
+
+#sidebar-wrapper {
+ z-index: 1000;
+ position: fixed;
+ left: 250px;
+ width: 0;
+ height: 100%;
+ margin-left: -250px;
+ overflow-y: auto;
+ background: #004953;
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ -o-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+
+#wrapper.toggled #sidebar-wrapper {
+ width: 250px;
+}
+
+#page-content-wrapper {
+ width: 100%;
+ position: absolute;
+}
+
+#wrapper.toggled #page-content-wrapper {
+ position: absolute;
+ margin-right: -250px;
+}
+
+/* Sidebar Styles */
+
+.sidebar-nav {
+ position: absolute;
+ top: 0;
+ width: 250px;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.sidebar-nav li {
+ text-indent: 20px;
+ line-height: 40px;
+}
+
+.sidebar-nav li a {
+ display: block;
+ text-decoration: none;
+ color: #fff;
+}
+
+.sidebar-nav li a:hover {
+ text-decoration: none;
+ color: #fff;
+ background: rgba(255,255,255,0.5);
+}
+
+.sidebar-nav li a:active,
+.sidebar-nav li a:focus {
+ text-decoration: none;
+}
+
+.sidebar-nav > .sidebar-brand {
+ height: 65px;
+ font-size: 18px;
+ line-height: 60px;
+}
+
+.sidebar-nav > .sidebar-brand a {
+ color: #dddddd;
+}
+
+.sidebar-nav > .sidebar-brand a:hover {
+ color: #fff;
+ background: none;
+}
+
+
+@media(min-width:768px) {
+ #wrapper {
+ padding-left: 0;
+ }
+
+ #wrapper.toggled {
+ padding-left: 250px;
+ }
+
+ #sidebar-wrapper {
+ width: 0;
+ }
+
+ #wrapper.toggled #sidebar-wrapper {
+ width: 250px;
+ }
+
+ #page-content-wrapper {
+ padding: 10px;
+ position: relative;
+ }
+
+ #wrapper.toggled #page-content-wrapper {
+ position: relative;
+ margin-right: 0;
+ }
+}
diff --git a/ecldoc/Templates/html/css/simple-sidebar.css~ b/ecldoc/Templates/html/css/simple-sidebar.css~
new file mode 100644
index 0000000..9c8082d
--- /dev/null
+++ b/ecldoc/Templates/html/css/simple-sidebar.css~
@@ -0,0 +1,252 @@
+ body {
+ overflow-x: hidden;
+ }
+
+
+ .topbar {
+ background: #1034A6;
+ color : #FFFFFF;
+ }
+
+.ham {
+ color : #FFFFFF;
+ }
+ .ham:hover {
+ background: #FFFFFF;
+ color : #000000;
+ }
+
+ .ham:active,
+ .ham:focus {
+ background: #FFFFFF;
+ color : #000000;
+ }
+
+.page-header {
+ border-color: #000;
+}
+
+.desc-panel {
+ border-radius: 0px;
+ border : 0px;
+ border-left: 1px solid;
+ border-color: #041451;
+ box-shadow: none;
+}
+
+.panel-group .panel+.panel {
+ margin-top: 20px;
+}
+
+.desc-panel > .panel-heading {
+ background: #e5e6e8;
+ border-radius: 0px;
+}
+
+.desc-panel-heading {
+ padding : 0px;
+ overflow : auto;
+ height : auto;
+ border-radius: 0px;
+ background: #e5e6e8;
+}
+
+.desc-panel-body {
+ background: #f9f9f9;
+}
+
+.desc-panel-footer {
+ padding-left : 10px;
+ padding-right: 0px;
+ padding-bottom: 1px;
+}
+
+.desc-panel-group {
+ margin : 0px;
+}
+
+.desc-type {
+ font-size : 16px;
+ color : #FFF;
+ font-weight: bold;
+ background: #041051;
+ width : 10%;
+ float : left;
+ padding : 6px;
+}
+
+.desc-sign {
+ font-size: 16px;
+ background: #e5e6e8;
+ color : #000;
+ width : 70%;
+ float : left;
+ padding: 6px;
+}
+
+.desc-btns {
+ float : left;
+ height : 100%;
+}
+
+.inherittype {
+ background : #C40233;
+ color : #FFF;
+ padding : 4px;
+ border-radius: 3px;
+ margin-left: 6px;
+ margin-right: 6px;
+}
+
+.doc-type {
+ font-size : 16px;
+ color : #111;
+ font-weight: bold;
+ background: #F4A966;
+ height : 100%;
+ width : 10%;
+ float : left;
+ padding : 6px;
+}
+
+.sign-list {
+ font-size: 16px;
+ background: #eaecef;
+}
+
+.ret {
+ width : 30%;
+ color : #d80d0d;
+}
+
+.name {
+ width : 10%;
+ font-weight: bold;
+ color : #000000;
+}
+
+.param {
+ width : 70%;
+ color : #550982;
+}
+
+
+/* Toggle Styles */
+
+#wrapper {
+ padding-left: 0;
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ -o-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+
+#wrapper.toggled {
+ padding-left: 250px;
+}
+
+#sidebar-wrapper {
+ z-index: 1000;
+ position: fixed;
+ left: 250px;
+ width: 0;
+ height: 100%;
+ margin-left: -250px;
+ overflow-y: auto;
+ background: #004953;
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ -o-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+
+#wrapper.toggled #sidebar-wrapper {
+ width: 250px;
+}
+
+#page-content-wrapper {
+ width: 100%;
+ position: absolute;
+}
+
+#wrapper.toggled #page-content-wrapper {
+ position: absolute;
+ margin-right: -250px;
+}
+
+/* Sidebar Styles */
+
+.sidebar-nav {
+ position: absolute;
+ top: 0;
+ width: 250px;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.sidebar-nav li {
+ text-indent: 20px;
+ line-height: 40px;
+}
+
+.sidebar-nav li a {
+ display: block;
+ text-decoration: none;
+ color: #fff;
+}
+
+.sidebar-nav li a:hover {
+ text-decoration: none;
+ color: #fff;
+ background: rgba(255,255,255,0.5);
+}
+
+.sidebar-nav li a:active,
+.sidebar-nav li a:focus {
+ text-decoration: none;
+}
+
+.sidebar-nav > .sidebar-brand {
+ height: 65px;
+ font-size: 18px;
+ line-height: 60px;
+}
+
+.sidebar-nav > .sidebar-brand a {
+ color: #dddddd;
+}
+
+.sidebar-nav > .sidebar-brand a:hover {
+ color: #fff;
+ background: none;
+}
+
+
+@media(min-width:768px) {
+ #wrapper {
+ padding-left: 0;
+ }
+
+ #wrapper.toggled {
+ padding-left: 250px;
+ }
+
+ #sidebar-wrapper {
+ width: 0;
+ }
+
+ #wrapper.toggled #sidebar-wrapper {
+ width: 250px;
+ }
+
+ #page-content-wrapper {
+ padding: 10px;
+ position: relative;
+ }
+
+ #wrapper.toggled #page-content-wrapper {
+ position: relative;
+ margin-right: 0;
+ }
+}
diff --git a/ecldoc/Templates/html/taglets.tpl.html b/ecldoc/Templates/html/taglets.tpl.html
new file mode 100644
index 0000000..c93ccc7
--- /dev/null
+++ b/ecldoc/Templates/html/taglets.tpl.html
@@ -0,0 +1,73 @@
+{%- macro threetag(name, tuples) %}
+
+
{{ name }}
+
+
+ {% for t in tuples %}
+
+ {{ t[0] }}
+ {{ t[1] }} -- {{ t[2] }}
+
+ {%- endfor %}
+
+
+
+{%- endmacro %}
+
+{%- macro twotag(name, tuples) %}
+
+
{{ name }}
+
+
+ {% for t in tuples %}
+
+ {{ t[0] }}
+ {{ t[1] }}
+
+ {%- endfor %}
+
+
+
+{%- endmacro %}
+
+{%- macro onetag(name, tuples) %}
+
+
{{ name }}
+
+
+ {% for t in tuples %}
+
+ {{ t[0] }}
+
+ {%- endfor %}
+
+
+
+{%- endmacro %}
+
+{% macro parenttag(name, tuples) %}
+
+{% endmacro %}
+
+{% macro contenttag(text) %}
+
+{% endmacro %}
+
+{{ render_name|macro(*args) }}
\ No newline at end of file
diff --git a/ecldoc/Templates/html/toc.tpl.html b/ecldoc/Templates/html/toc.tpl.html
new file mode 100644
index 0000000..3cb98c9
--- /dev/null
+++ b/ecldoc/Templates/html/toc.tpl.html
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
{{ name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% if bundle is not none %}
+
+
+ {% for tag in bundle.iterchildren() %}
+
+ {{ tag.tag }}
+
+ {{ tag.text }}
+
+
+ {% endfor %}
+
+
+ {% endif %}
+
+
+
+ {% for d in files %}
+
+
+ {% if d.type == 'file' %}
+
+ {% elif d.type == 'bundle' %}
+
+ {% else %}
+
+ {% endif %}
+
+ {{ d.name }}
+ {{ d.doc }}
+
+ {% endfor %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ecldoc/Templates/tex/content.tpl.tex b/ecldoc/Templates/tex/content.tpl.tex
new file mode 100644
index 0000000..c582a9b
--- /dev/null
+++ b/ecldoc/Templates/tex/content.tpl.tex
@@ -0,0 +1,77 @@
+\chapter*{\color{headfile}
+\BLOCK{ if name|length > 1 }
+\BLOCK{ for word in name[:(name|length-1)] }
+{\large \VAR{word|escape_tex}\slash\hspace{0pt}}
+\BLOCK{ endfor } \\
+\BLOCK{ endif }
+\VAR{ name[-1] }
+}
+\hypertarget{ecldoc:toc:\VAR{src.attrib.name}}{}
+\hyperlink{ecldoc:\VAR{ up }}{Go Up}
+
+\BLOCK{ if src.findall('./Import')|length > 0 }
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+\BLOCK{ for imp in src.findall('./Import') }
+\BLOCK{ if 'ref' in imp.attrib }
+\VAR{ imp.attrib['ref']|escape_tex } |
+\BLOCK{ endif }
+\BLOCK{ endfor }
+}
+\end{doublespace}
+\BLOCK{ endif }
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\BLOCK{ for def in defn_tree recursive }
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} \VAR{def.tag.attrib['name'].upper()}}
+\VAR{def.tag.attrib.name|escape_tex}}}
+
+\hypertarget{ecldoc:\VAR{def.tag.attrib.fullname}}{}
+\BLOCK{ for anc in def.tag.iterancestors('Definition')|reverse }
+\hspace{0pt} \hyperlink{ecldoc:\VAR{anc.attrib.fullname}}{\VAR{anc.attrib.name}} \textbackslash\VAR{" "}
+\BLOCK{ endfor }
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} \VAR{def['sign'].attrib['ret']|escape_tex}} & \textbf{\VAR{def['sign'].attrib['name']|escape_tex}} \\
+\hline
+\BLOCK{ if def['sign'].attrib['param'] != '' }
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} \VAR{def['sign'].attrib['param']|escape_tex}}} \\
+\hline
+\BLOCK{ endif }
+\end{tabularx}
+}
+
+\par
+\VAR{def.doc.content}
+\VAR{def.doc.param}
+\VAR{def.doc.field}
+\VAR{def.doc.return}
+\BLOCK{ for tag in def.doc }
+\BLOCK{ if tag not in ['content', 'firstline', 'param', 'return', 'field', 'parent'] }
+\VAR{def.doc[tag]}
+\BLOCK{ endif }
+\BLOCK{ endfor }
+\VAR{def.doc.parent}
+
+\BLOCK{ if def['defns']|length > 0 }
+\textbf{Children}
+\begin{enumerate}
+\BLOCK{ for child in def['defns'] }
+\item \hyperlink{ecldoc:\VAR{child.tag.attrib.fullname}}{\VAR{ child.tag.attrib.name|escape_tex }}
+\BLOCK{ if child.doc['firstline']|length != 0 }
+: \VAR{ child.doc.firstline }
+\BLOCK{ endif }
+\BLOCK{ endfor }
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\VAR{ loop(def['defns']) }
+
+\BLOCK{ else }
+\rule{\linewidth}{0.5pt}
+\BLOCK{ endif }
+\BLOCK{ endfor }
diff --git a/ecldoc/Templates/tex/index.tpl.tex b/ecldoc/Templates/tex/index.tpl.tex
new file mode 100644
index 0000000..94401ac
--- /dev/null
+++ b/ecldoc/Templates/tex/index.tpl.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{\VAR{root}}
+
+\end{document}
diff --git a/ecldoc/Templates/tex/taglets.tpl.tex b/ecldoc/Templates/tex/taglets.tpl.tex
new file mode 100644
index 0000000..70fa141
--- /dev/null
+++ b/ecldoc/Templates/tex/taglets.tpl.tex
@@ -0,0 +1,51 @@
+\BLOCK{ macro threetag(name, tuples) }
+\BLOCK{ if tuples|length > 0 }
+\par
+\begin{description}
+\BLOCK{ for t in tuples }
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{\VAR{name.upper()}}}}] \textbf{\underline{\VAR{t[0]|escape_tex}}} ||| \VAR{t[1]|escape_tex} --- \VAR{t[2]|escape_tex}
+\BLOCK{ endfor }
+\end{description}
+\BLOCK{ endif }
+\BLOCK{ endmacro }
+
+\BLOCK{ macro twotag(name, tuples) }
+\BLOCK{ if tuples|length > 0 }
+\par
+\begin{description}
+\BLOCK{ for t in tuples }
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{\VAR{name.upper()}}}}] \textbf{\VAR{t[0]|escape_tex}} --- \VAR{t[1]|escape_tex}
+\BLOCK{ endfor }
+\end{description}
+\BLOCK{ endif }
+\BLOCK{ endmacro }
+
+\BLOCK{ macro onetag(name, tuples) }
+\BLOCK{ if tuples|length > 0 }
+\par
+\begin{description}
+\BLOCK{ for t in tuples }
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{\VAR{name.upper()}}}}] \VAR{t[0]|escape_tex}
+\BLOCK{ endfor }
+\end{description}
+\BLOCK{ endif }
+\BLOCK{ endmacro }
+
+\BLOCK{ macro linktag(name, tuples) }
+\BLOCK{ if tuples|length > 0 }
+\par
+\begin{description}
+\BLOCK{ for t in tuples }
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{\VAR{name.upper()}}}}] \textbf{\VAR{t[0]|escape_tex}} <\VAR{t[1]|escape_tex}>
+\BLOCK{ endfor }
+\end{description}
+\BLOCK{ endif }
+\BLOCK{ endmacro }
+
+\BLOCK{ macro contenttag(lines) }
+\BLOCK{ for line in lines }
+\VAR{ line }
+\BLOCK{ endfor }
+\BLOCK{ endmacro }
+
+\VAR{ render_name|macro(*args) }
\ No newline at end of file
diff --git a/ecldoc/Templates/tex/toc.tpl.tex b/ecldoc/Templates/tex/toc.tpl.tex
new file mode 100644
index 0000000..4d1790f
--- /dev/null
+++ b/ecldoc/Templates/tex/toc.tpl.tex
@@ -0,0 +1,36 @@
+\chapter*{\color{headtoc} \VAR{name|escape_tex}}
+\hypertarget{ecldoc:toc:\VAR{label}}{}
+\hyperlink{ecldoc:toc:\VAR{ up }}{Go Up}
+
+\BLOCK{ if bundle }
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+\BLOCK{ for tag in bundle.iterchildren() }
+\VAR{ tag.tag|escape_tex } &
+\BLOCK{ if tag.tag == 'License' }
+\url{\VAR{ tag.text }}
+\BLOCK{ else }
+\VAR{ tag.text|escape_tex }
+\BLOCK{ endif } \\
+\hline
+\BLOCK{ endfor }
+\end{tabularx}
+\BLOCK{ endif }
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\BLOCK{ for d in files }
+\hyperlink{ecldoc:toc:\VAR{d.label}}{\VAR{ d.name|escape_tex }} \\
+\BLOCK{ if d.doc != '' }
+\VAR{ d.doc|escape_tex } \\
+\BLOCK{ endif }
+\hline
+\BLOCK{ endfor }
+\end{longtable}
+}
+
+\BLOCK{ for d in files }
+\input{\VAR{ d.target[:-4] }}
+\BLOCK{ endfor }
diff --git a/ecldoc/Templates/txt/content.tpl.txt b/ecldoc/Templates/txt/content.tpl.txt
new file mode 100644
index 0000000..21b2774
--- /dev/null
+++ b/ecldoc/Templates/txt/content.tpl.txt
@@ -0,0 +1,46 @@
+{%- macro display_tag(tags) -%}
+{%- if tags|length > 0 -%}
+{%- for tag in tags -%}
+{%- for line in tag -%}
+{{ '\n' }}{{ line }}
+{%- endfor -%}
+{{ '\n' }}
+{%- endfor -%}
+{%- endif -%}
+{%- endmacro -%}
+{%- macro desc(def) -%}
+{{ '-' * 130 }}
+{%- for h in def.headers -%}
+{{ '\n' + h }}
+{%- endfor -%}
+{{ '\n' }}{{ '-' * 130 }}{{ '\n' }}{{ '\n' }}
+{%- for line in def.doc.content -%}
+{{ line }}{{ '\n' }}
+{%- endfor -%}
+{{ display_tag(def.doc.param) -}}
+{{ display_tag(def.doc.field) -}}
+{{ display_tag(def.doc.return) }}
+{%- for tag in def.doc -%}
+{%- if tag not in ['content', 'firstline', 'param', 'return', 'field', 'parent'] -%}
+{{ display_tag(def.doc[tag]) }}
+{%- endif -%}
+{%- endfor -%}
+{{ display_tag(def.doc.parent) -}}
+{{ '\n' }}
+{%- endmacro -%}
+IMPORTS
+=======
+{{ '\n' }}
+{%- for imp in src.findall('./Import') -%}
+{%- if 'ref' in imp.attrib -%}
+{{ '\n' + imp.attrib.ref }} <{{ imp.attrib.target }}>
+{%- endif -%}
+{%- endfor -%}
+{{ '\n' }}
+DESCRIPTIONS
+============
+{{ '\n' }}
+{%- for def in defn_tree recursive -%}
+{{ desc(def)|indent_doc(loop.depth0, 3) }}
+{{ loop(def.defns) }}
+{%- endfor -%}
\ No newline at end of file
diff --git a/ecldoc/Templates/txt/toc.tpl.txt b/ecldoc/Templates/txt/toc.tpl.txt
new file mode 100644
index 0000000..8771dad
--- /dev/null
+++ b/ecldoc/Templates/txt/toc.tpl.txt
@@ -0,0 +1,18 @@
+{{ '+' * (name|length + 4) }}
+ {{ name }}
+{{ '+' * (name|length + 4) }}
+
+{% if bundle is not none -%}
+{%- for tag in bundle.iterchildren() %}
+{{ tag.tag }} : {{ tag.text }}
+{% endfor -%}
+{%- endif %}
+
+CONTENTS
+========
+
+{% for d in files -%}
+{{ d.type }} : {{ d.name }} <{{ d.target }}> {{ d.doc }}
+
+{% endfor -%}
+
diff --git a/ecldoc/USERDOC.txt b/ecldoc/USERDOC.txt
new file mode 100644
index 0000000..2ffe63c
--- /dev/null
+++ b/ecldoc/USERDOC.txt
@@ -0,0 +1,3 @@
+1) Period to denote first line in Comment
+2) License should be URL
+3) Supported HTML tags in Markdown : p, pre, ol, ul, li, br, hr, a, table, tr, td, a
diff --git a/ecldoc/Utils.py b/ecldoc/Utils.py
new file mode 100644
index 0000000..1241319
--- /dev/null
+++ b/ecldoc/Utils.py
@@ -0,0 +1,76 @@
+import os
+
+########################################################################
+
+def split(arg, sep, apply=lambda x : x) :
+ return [apply(x.strip()) for x in arg.split(sep) if len(x) != 0]
+
+########################################################################
+
+from jinja2 import contextfilter
+
+@contextfilter
+def call_macro_by_name(context, macro_name, *args, **kwargs):
+ return context.vars[macro_name](*args, **kwargs)
+
+########################################################################
+
+def genPathTree(ecl_files, ext='') :
+ '''
+ Convert filepaths recovered from glob pattern into a tree structure
+ '''
+ path_tree = { "root" : {} }
+ for file in ecl_files :
+ path = os.path.normpath(file).split(os.sep)
+ parent = path_tree["root"]
+ for node in path[:-1] :
+ if node not in parent :
+ parent[node] = {}
+ parent = parent[node]
+
+ if path[-1].lower() == 'bundle.ecl' :
+ path[-1] = 'bundle.ecl'
+ parent[path[-1]] = file + ext
+
+ return path_tree
+
+def getRoot(path_tree, ecl_file) :
+ '''
+ walk the filepath tree to get parent of ecl_file
+ '''
+ path = os.path.normpath(ecl_file).split(os.sep)[:-1]
+ parent_path = ''
+ parent = path_tree['root']
+ for node in path :
+ parent = parent[node]
+ parent_path = os.path.join(parent_path, node)
+
+ return parent
+
+########################################################################
+
+def write_to_file(filename, text) :
+ fp = open(filename, 'w')
+ fp.write(text)
+ fp.close()
+
+def read_file(filename) :
+ # Note the newline = ''. This is required in order to prevent
+ #
from being changed to which confuses the offsets.
+ # The default, newline = None, casuses replacement. Errors = 'replace'
+ # causes bad UTF-8 chars to be replaced with '?'.
+ return open(filename,'r', errors='strict', newline='').read()
+
+########################################################################
+
+def relpath(p1, p2) :
+ return os.path.relpath(p1, p2)
+
+def joinpath(*p1) :
+ return os.path.join(*p1)
+
+def dirname(p1) :
+ return os.path.dirname(p1)
+
+def realpath(p1) :
+ return os.path.realpath(p1)
diff --git a/ecldoc/__init__.py b/ecldoc/__init__.py
new file mode 100644
index 0000000..66aefdd
--- /dev/null
+++ b/ecldoc/__init__.py
@@ -0,0 +1 @@
+__all__ = ['ecldoc']
diff --git a/ecldoc/ecldoc.py b/ecldoc/ecldoc.py
new file mode 100644
index 0000000..331b37d
--- /dev/null
+++ b/ecldoc/ecldoc.py
@@ -0,0 +1,151 @@
+#!/usr/bin/env python3
+
+import os
+import glob
+import argparse
+import configparser
+
+from ecldoc.Utils import joinpath, relpath, realpath
+from ecldoc.Utils import split
+
+from ecldoc.genXML import GenXML
+from ecldoc.Formats.generators import generators
+
+def configParser(configfile) :
+ '''
+ Parse ecldoc options from configuration file (in INI Format) and append
+ them to options dictionary
+
+ :param configfile: path to configuration file
+ '''
+ options = {}
+
+ cfgparser = configparser.ConfigParser()
+ cfgparser.optionxform = str
+ cfgparser.read(configfile)
+
+ options['input_root'] = None
+ if 'INPUT' in cfgparser.sections() :
+ options['input_root'] = realpath(cfgparser['INPUT']['root'])
+ options['nodoc'] = cfgparser['INPUT'].getboolean('hideNodoc', False)
+ options['nointernal'] = cfgparser['INPUT'].getboolean('hideInternal', False)
+
+ include = ['**/*.ecl']
+ if 'include' in cfgparser['INPUT'] :
+ include = split(cfgparser['INPUT']['include'], sep=',')
+ options['include'] = include
+
+ exclude = []
+ if 'exclude' in cfgparser['INPUT'] :
+ exclude = split(cfgparser['INPUT']['exclude'], sep=',')
+ options['exclude'] = exclude
+
+ options['output_root'] = None
+ options['formats'] = ['html', 'text', 'pdf']
+ if 'OUTPUT' in cfgparser.sections() :
+ options['output_root'] = cfgparser['OUTPUT']['root']
+ if 'format' in cfgparser['OUTPUT'] :
+ options['formats'] = split(cfgparser['OUTPUT']['format'], sep=',', apply=lambda x : x.lower())
+
+ options['eclcc'] = []
+ if 'ECLCC' in cfgparser.sections() :
+ for key in cfgparser['ECLCC'] :
+ if cfgparser['ECLCC'].getboolean(key) :
+ options['eclcc'].append(key)
+
+ options['exdoc_paths'] = []
+ if 'EXDOC' in cfgparser.sections() :
+ paths = split(cfgparser['EXDOC']['paths'], sep=',')
+ options['exdoc_paths'] = paths
+
+ return options
+
+def argsParserEcldoc(args) :
+ '''
+ Parse command line options and return as dictionary
+ :param args: command line args returned by builtin ArgumentParser
+ '''
+ options = {}
+ if args.config is not None :
+ options = configParser(args.config)
+ else :
+ options['input_root'] = args.iroot
+ options['output_root'] = args.oroot
+ options['include'] = split(args.include, ',')
+ options['exclude'] = split(args.exclude, ',')
+ options['eclcc'] = split(args.eclcc, ';')
+ options['nodoc'] = args.hideNoDoc
+ options['nointernal'] = args.hideInternal
+ options['exdoc_paths'] = split(args.exdocpaths, ',', apply=lambda x : realpath(x))
+ options['formats'] = split(args.format, ',', apply=lambda x : x.lower())
+ return options
+
+def doMain() :
+ '''
+ Main Function (Entry point for ECLDOC)
+ '''
+ parser = argparse.ArgumentParser(description='Parser for ECLDOC')
+ parser.add_argument('--config', help="Specify configuration file")
+ parser.add_argument('-i', '--iroot', help="Specify input root")
+ parser.add_argument('-o', '--oroot', help="Specify output root")
+ parser.add_argument('-f', '--format', help="Specify output formats separated by , (eg html,text,pdf)", default='text')
+ parser.add_argument('--include', help="Specify include paths seprated by ','", default='**/*.ecl')
+ parser.add_argument('--exclude', help="Specify exclude paths seprataed by ','", default='')
+ parser.add_argument('--eclcc', help="Specify eclcc Options separated by ';'", default='')
+ parser.add_argument('--exdocpaths', help="Specify External Documentation paths separated by ','", default='')
+ parser.add_argument('--hideNoDoc', help="Hide Definitions with No Documentation", action='store_true', default=False)
+ parser.add_argument('--hideInternal', help="Hide Definitions with @internal tag", action='store_true', default=False)
+
+ args = parser.parse_args()
+ print(args)
+
+ options = argsParserEcldoc(args)
+ print(options)
+
+ if options['input_root'] is None :
+ print("Input Root Not Found")
+ exit(1)
+ if options['output_root'] is None :
+ print("Output Root Not Found")
+ exit(1)
+
+ ### Apply include and exclude glob pattern to filter files in input root source tree
+ ### ecl_files : Paths to filtered files stored in ecl_files list
+
+ ecl_files = []
+ input_root = realpath(options['input_root'])
+ for pattern in options['include'] :
+ pattern = joinpath(input_root, pattern)
+ filenames = glob.glob(pattern, recursive=True)
+ filenames = [realpath(f) for f in filenames]
+ ecl_files += [relpath(f, input_root) for f in filenames]
+
+ for pattern in options['exclude'] :
+ pattern = joinpath(input_root, pattern)
+ filenames = glob.glob(pattern, recursive=True)
+ filenames = [realpath(f) for f in filenames]
+ filenames = [relpath(f, input_root) for f in filenames]
+ ecl_files = list(set(ecl_files) - set(filenames))
+
+ ### Check if output root present and create it if not
+
+ output_root = realpath(options['output_root'])
+ if not os.path.exists(output_root) :
+ os.makedirs(output_root, exist_ok=True)
+
+ ### XML Intermediate format generator
+ ### ecl_file_tree : Source tree is recreated from paths in ecl_files by XML Generator
+ ### and filtered on basis of hideInternal and hideNoDoc
+
+ xmlgenerator = GenXML(input_root, output_root, ecl_files, options)
+ xmlgenerator.run()
+ ecl_file_tree = xmlgenerator.ecl_file_tree
+
+ ### Generator is run for each format that is present in format option by user
+
+ for f in options['formats'] :
+ if f in generators :
+ generators[f](input_root, output_root, ecl_file_tree, options).run()
+
+if __name__ == "__main__" :
+ doMain()
\ No newline at end of file
diff --git a/ecldoc/genXML.py b/ecldoc/genXML.py
new file mode 100644
index 0000000..5acb28e
--- /dev/null
+++ b/ecldoc/genXML.py
@@ -0,0 +1,486 @@
+import os
+import re
+import json
+import subprocess
+from copy import deepcopy
+
+from lxml import etree
+from lxml.builder import E
+
+from .Utils import genPathTree
+from .Utils import joinpath, relpath, dirname, realpath
+from .Utils import read_file
+
+from .parseDoc import parseDocstring, cleansign, breaksign
+
+
+class ParseXML(object):
+ '''
+ ParseXML is main class to generate XML Documentation for a single ecl file
+ '''
+ def __init__(self, generator, ecl_file):
+ '''
+ :param generator: GenXML object creating this object
+ :param ecl_file: path to ecl_file to parse
+ '''
+ self.input_root = generator.input_root
+ self.output_root = generator.output_root
+ self.ecl_file = ecl_file
+
+ ### complete path to ecl file
+ self.input_file = joinpath(self.input_root, ecl_file)
+
+ ### Path to file where output from eclcc -M will be stored (called xmlOriginal)
+ self.xml_orig_root = generator.xml_orig_root
+ self.xml_orig_file = joinpath(self.xml_orig_root, ecl_file + '.xml')
+
+ ### Path to file where processed xml from xmlOriginal will be stored
+ self.xml_root = generator.xml_root
+ self.xml_file = joinpath(self.xml_root, ecl_file + '.xml')
+ self.xml_dir = dirname(self.xml_file)
+
+ self.generator = generator
+ self.options = generator.options
+
+ ### Check if any definitions remaining in xml tree after processing
+ self.internal = False
+
+ #local
+ self.depends = {}
+ self.src = None
+
+ def parse(self):
+ '''
+ Main function called by generator on this object
+ Generates both XMLOriginal and processed XML Doc
+ '''
+
+ ### Run eclcc -M on input_file to generate xmlOriginal doc
+ os.makedirs(dirname(self.xml_orig_file), exist_ok=True)
+ eclcc_options = ' '.join(self.options['eclcc'])
+ p = subprocess.call(['eclcc -M ' + eclcc_options +
+ ' -o ' + self.xml_orig_file + ' ' +
+ self.input_file], shell=True, cwd=self.input_root)
+ print("ECLCC ||| File : ", self.ecl_file, " ||| Output Code : ", p)
+
+ if p > 0 :
+ print("ECLCC Error : Removing file from documentation source tree")
+ self.internal = True
+ return
+
+ tree = etree.parse(self.xml_orig_file)
+ root = tree.getroot()
+
+ ### Main loop of this function
+ ### Loops over all Source Tags in xmlOriginal
+
+ for src in root.iter('Source'):
+ attribs = src.attrib
+ srcpath = realpath(attribs['sourcePath'])
+
+ ### Check each Source Tag in xmlOriginal to see if it match input_file
+ ### If yes, keep it, else replace that Source Tag with Depend Tag
+
+ if os.path.exists(srcpath) and srcpath.startswith(self.input_root):
+ attribs['sourcePath'] = srcpath
+ src_relpath = relpath(srcpath, self.input_root)
+ tgtpath = joinpath(self.xml_root, (src_relpath + '.xml'))
+ tgtpath = realpath(tgtpath)
+ tgtpath = relpath(tgtpath, self.xml_dir)
+ attribs['target'] = tgtpath
+ if src_relpath == self.ecl_file:
+ continue
+
+ root.remove(src)
+ depend = etree.Element('Depends', sourcePath=attribs['sourcePath'])
+
+ if 'name' in attribs:
+ depend.set('name', attribs['name'])
+
+ ### Create a entry in depend dictionary for current Source
+ ### Used to map Imports and other targets to correct file
+ self.depends[tuple(attribs['name'].lower().split('.'))] = depend
+
+ ### Set Target Path to processed XML for given Dependency
+ ### Match its source path to current source tree and external documentation (if any)
+ if 'target' in attribs:
+ depend.set('target', attribs['target'])
+ else:
+ if 'name' in attribs:
+ matched = self.generator.matchExdoc(attribs['name'], source=attribs['sourcePath'])
+ if matched is not None:
+ depend.set('target', matched + '.xml')
+ else:
+ depend.set('target', attribs['sourcePath'])
+ else:
+ depend.set('target', attribs['sourcePath'])
+
+ root.insert(-1, depend)
+
+ ### Only Source Tag corresponding to input_file is left and is processed
+ self.src = root.find('Source')
+ self.parseSource()
+
+ ### If no definitions left, set internal to True
+ if len(self.src.findall('Definition')) == 0:
+ self.internal = True
+
+ ### write processed XML to xml_file if not internal
+ if self.internal is False:
+ os.makedirs(dirname(self.xml_file), exist_ok=True)
+ tree.write(self.xml_file, xml_declaration=True, encoding='utf-8')
+
+ def parseSource(self):
+ attribs = self.src.attrib
+ srcpath = realpath(attribs['sourcePath'])
+ print('parseSource srcpath = ', srcpath)
+ self.text = read_file(srcpath);
+
+ ### Append to depend dictionary entry correspong to given file
+ ### for self referential targets
+ if 'name' in attribs:
+ self.depends[tuple(attribs['name'].lower().split('.'))] = self.src
+
+ for imp in self.src.iter('Import'):
+ self.parseImport(imp)
+
+ for doc in self.src.iter('Documentation'):
+ self.parseDocumentation(doc)
+
+ for defn in self.src.findall('Definition'):
+ if self.checkDefinition(defn):
+ self.src.remove(defn)
+ else:
+ self.parseDefinition(defn)
+
+ ### Documentation for first Definition in Source become Documentation
+ ### for the source. Useful in displaying documentation in TOCs
+ maindefn = self.src.find("Definition")
+ if maindefn is not None and maindefn.find('Documentation') is not None:
+ docstring = deepcopy(maindefn.find('Documentation'))
+ self.src.append(docstring)
+ else:
+ self.src.append(E('Documentation', E('content', ' ')))
+
+ def parseDefinition(self, defn):
+ print('parseDefinition defn = ', defn)
+ attribs = defn.attrib
+ self.generateSignature(defn)
+
+ if 'fullname' in attribs:
+ fullname = attribs['fullname']
+ best_depend = self.matchPath(fullname)
+ if best_depend is not None and best_depend != self.src:
+ attribs['target'] = best_depend.attrib['target']
+ elif 'name' in attribs:
+ attribs['fullname'] = 'ecldoc-' + attribs['name']
+
+ for childdefn in defn.findall('Definition'):
+ ### Do not parse children of inherited attributes, in addition to normal checks
+ if attribs['inherittype'] == 'inherited' or self.checkDefinition(childdefn):
+ defn.remove(childdefn)
+ else:
+ self.parseDefinition(childdefn)
+
+ parents = defn.find('Parents')
+ if parents is not None:
+ self.parseParents(parents)
+
+ ### Remove unnecessary attributes
+ attribs.pop('body', None)
+ attribs.pop('start', None)
+ attribs.pop('end', None)
+
+ def generateSignature(self, defn):
+ '''
+ Generate attribute signature by reading the ecl source file where
+ given Definition is present.
+ Signature is text between EXPORT and :=
+ '''
+ attribs = defn.attrib
+ name = attribs['name']
+ print('generateSignature name = ', name)
+ is_scope = 'type' in attribs and attribs['type'] in ['module', 'interface']
+ has_params = defn.find('Params') is not None
+
+ ecl_text = self.text
+ gen_sign = False
+
+ if 'fullname' in attribs:
+ gen_sign = True
+ ### MORE : if definition is scope without params, do not read file for it.
+ ### Problem in fullname resolution
+ if is_scope and (not has_params) :
+ gen_sign = False
+ else :
+ ### If definition signature in external file (eg inherited attributes)
+ ### based on fullname, Find that file
+ best_depend = self.matchPath(attribs['fullname'])
+ if best_depend is not None and best_depend != self.src:
+ print( 'generateSignature fullname = ', best_depend.attrib['sourcePath'])
+ ecl_text = read_file(best_depend.attrib['sourcePath']);
+
+ sign = etree.Element('Signature')
+ sign.text = name
+ if gen_sign and ('start' in attribs) and ('body' in attribs) :
+ sign.text = ecl_text[int(attribs['start'])-2:int(attribs['body'])]
+ sign.text = cleansign(sign.text)
+
+ ### break sign text into return type, name and parameter segments (Heuristic only)
+ ### Indent len = strlen(ret) + strlen(name)
+ ret, param, indent_len = breaksign(name, sign.text)
+
+ sign.attrib['name'] = name
+ sign.attrib['ret'] = ret
+ sign.attrib['param'] = param
+ sign.attrib['hlen'] = str(indent_len)
+ defn.insert(-1, sign)
+
+ def parseDocumentation(self, doc):
+ content = doc.find('content')
+ #print('parseDocumentation doc = ', etree.tostring(doc))
+ #print('parseDocumentation content = ', etree.tostring(content))
+ elements = parseDocstring(content.text)
+ doc.remove(content)
+ ### Append all parsed doctags from docstring as XML Tags
+ for tag in elements:
+ for desc in elements[tag]:
+ doc.append(desc)
+
+ def parseImport(self, imp):
+ attribs = imp.attrib
+ ### Match Reference of Import to correct File/Directory Path for Linking
+ if 'ref' in attribs:
+ attribs['target'] = self.matchReference(attribs['ref'])
+
+ attribs.pop('body', None)
+ attribs.pop('start', None)
+ attribs.pop('end', None)
+ attribs.pop('fullname', None)
+ attribs.pop('line', None)
+ attribs.pop('inherittype', None)
+ if imp.find('Documentation') is not None :
+ imp.remove(imp.find('Documentation'))
+
+ def parseParents(self, parents):
+ for parent in parents.findall('Parent'):
+ attribs = parent.attrib
+ ### Match Reference (Fullname) of parent to correct File/Directory Path for Linking
+ if 'ref' in attribs:
+ attribs['target'] = self.matchReference(attribs['ref'])
+
+ def matchReference(self, refpath):
+ '''
+ Match reference/fullname to correct file/dir path
+ '''
+ target = ''
+ ### First search among Dependency Files
+ best_depend = self.matchPath(refpath)
+ if best_depend is not None:
+ target = best_depend.attrib['target']
+ else:
+ ### Then search in External Documentation (assumption : only directory paths left)
+ matched = self.generator.matchExdoc(refpath)
+ if matched is not None:
+ target = matched + '.xml'
+ else:
+ ### Simply Convert reference to path (assumption : only directory paths left)
+ refpath = refpath.split('.') + ['pkg.toc.xml']
+ target = joinpath(self.xml_root, *refpath)
+ target = relpath(target, self.xml_dir)
+ return target
+
+ def matchPath(self, path):
+ '''
+ Find best prefix match for given fullname/reference in Depend Dictionary
+ '''
+ path = tuple(path.lower().split('.'))
+ current_prefix = ()
+ for depend_path in self.depends:
+ prefix = os.path.commonprefix([path, depend_path])
+ if len(prefix) > len(current_prefix):
+ current_prefix = prefix
+
+ if len(current_prefix) > 0 and current_prefix in self.depends:
+ return self.depends[current_prefix]
+
+ return None
+
+ def checkDefinition(self, defn):
+ '''
+ Check if definition should be expanded or removed
+ True : Definition should be removed
+ '''
+ test_1 = 'exported' not in defn.attrib
+ test_2 = self.options['nodoc'] and (defn.find('Documentation') is None)
+ test_3 = (self.options['nointernal'] and
+ (defn.find('Documentation') is not None) and
+ (defn.find('Documentation').find('internal') is not None))
+ return test_1 or test_2 or test_3
+
+###########################################################################################
+
+def parseBundle(generator, ecl_file):
+ input_file = joinpath(generator.input_root, ecl_file)
+ dirpath = dirname(input_file)
+
+ dirpath_xml_orig = dirname(joinpath(generator.xml_orig_root, ecl_file))
+ dirpath_xml = dirname(joinpath(generator.xml_root, ecl_file))
+
+ bundle_orig_path = joinpath(dirpath_xml_orig, 'bundle.orig.out')
+ bundle_xml_path = joinpath(dirpath_xml, 'bundle.xml')
+
+ os.makedirs(dirpath_xml_orig, exist_ok=True)
+ p = subprocess.call(['ecl-bundle info ' + dirpath + ' > ' + bundle_orig_path], shell=True)
+ print("ECL-BUNDLE ||| ", "Bundle File : ", dirpath, "Output Code : ", p)
+
+ data = read_file(bundle_orig_path).split('\n')
+ data = [x.split(':', 1) for x in data]
+ data = [(x[0].strip(), x[1].strip()) for x in data if len(x) == 2]
+ root = etree.Element("Bundle")
+ for k in data:
+ node = etree.Element(k[0])
+ node.text = k[1]
+ root.append(node)
+
+ os.makedirs(dirname(bundle_xml_path), exist_ok=True)
+ etree.ElementTree(root).write(bundle_xml_path, pretty_print=True, xml_declaration=True, encoding='utf-8')
+
+###########################################################################################
+
+class GenXML(object):
+ '''
+ Generate XML Doc all files in ecl_files.
+ Two types of XML Docs : xmlOriginal (eclcc output) and XML (after processing)
+ '''
+ def __init__(self, input_root, output_root, ecl_files, options):
+ self.input_root = input_root
+ self.output_root = output_root
+ ### Recreate Source Tree as dictionary from ecl file paths
+ self.ecl_file_tree = genPathTree(ecl_files)
+ self.options = options
+
+ ### Folder where xmlOriginal files are stored
+ self.xml_orig_root = joinpath(output_root, 'xmlOriginal')
+ os.makedirs(self.xml_orig_root, exist_ok=True)
+
+ ### Folder where processed XML files are stored
+ self.xml_root = joinpath(output_root, 'xml')
+ os.makedirs(self.xml_root, exist_ok=True)
+
+ def gen(self, key, node, xml_root, content_root):
+ '''
+ Recursively parse source tree dictionary.
+ If current_node is file : parse file using parseXML or parseBundle
+ Else If : current_node is directory : recurse and generate pkg.toc.xml for that dir
+ :param key: string | the name of current_node in path tree
+ :param node: dict | the parent of current_node (parent is passed so that current_node
+ can be deleted if it is internal file)
+ :param content_root: string | real path to current node
+ :param xml_root: lxml.Element | current node in xml repr of path tree for TOCs
+ '''
+ current_node = node[key]
+ if type(current_node) != dict:
+ if key == 'bundle.ecl':
+ parseBundle(self, current_node)
+ return
+ ecl_file = current_node
+ parser = ParseXML(self, ecl_file)
+ parser.parse()
+ if parser.internal:
+ del node[key]
+ else:
+ file = etree.Element('file')
+ file.attrib['name'] = key + '.xml'
+ file.text = current_node
+ xml_root.append(file)
+ else:
+ folder = etree.Element('folder')
+ xml_root.append(folder)
+ folder.attrib['name'] = key
+
+ child_keys = list(current_node.keys())
+ for chkey in child_keys:
+ child_root = joinpath(content_root, chkey)
+ self.gen(chkey, current_node, folder, child_root)
+
+ os.makedirs(content_root, exist_ok=True)
+ toc_file = joinpath(content_root, 'pkg.toc.xml')
+ etree.ElementTree(folder).write(toc_file, pretty_print=True, xml_declaration=True, encoding='utf-8')
+ self.genJsonTree(current_node, content_root)
+
+ def run(self):
+ '''
+ Main function called by ecldoc
+ '''
+ print("\nGenerating XML Documentation ... ")
+ self.processExternalDoc()
+ root = etree.Element('Root')
+ self.gen('root', self.ecl_file_tree, root, self.xml_root)
+
+ #######################################################################
+ # Generate tree for files and subfolders in each folder for given run #
+ # Currently used by External Dodc matching system . #
+ #######################################################################
+
+ def genJsonTree(self, tree, output_path='', dump=True):
+ json_output = {}
+ new_tree = deepcopy(tree)
+ self.processJsonTree(new_tree)
+ json_output['tree'] = new_tree
+ json_output['output_root'] = self.output_root
+ json_output['input_root'] = self.input_root
+ if output_path != '' :
+ rel_output_path = relpath(output_path, self.xml_root)
+ json_output['include_path'] = os.path.normpath(joinpath(self.input_root, rel_output_path))
+ else :
+ json_output['include_path'] = self.input_root
+ if dump:
+ json.dump(json_output, open(joinpath(output_path, 'tree.json'), 'w'), sort_keys=True, indent=4)
+
+ return json_output
+
+ def processJsonTree(self, tree):
+ keys = list(tree.keys())
+ for key in keys:
+ if type(tree[key]) == dict:
+ self.processJsonTree(tree[key])
+ node = tree[key]
+ del tree[key]
+ tree[re.sub(r'\.ecl$', '', key.lower())] = {'key': key, 'tree': node}
+
+ ###############################################################
+ # Process External Docs and provide match function for parser #
+ ###############################################################
+
+ def processExternalDoc(self):
+ self.exdocs = []
+ currdoc = self.genJsonTree(self.ecl_file_tree['root'], dump=False)
+ self.exdocs.append(currdoc)
+ for path in self.options['exdoc_paths']:
+ json_file = joinpath(path, 'tree.json')
+ assert os.path.isfile(json_file), ("Exdoc file does not exists : " + json_file)
+ external_doc = json.load(open(json_file))
+ self.exdocs.append(external_doc)
+
+ def matchExdoc(self, fullname, source=''):
+ fullname = tuple(fullname.lower().split('.'))
+ matched = None
+ for exdoc in self.exdocs:
+ val = self.findInTree(fullname, exdoc['tree'], '')
+ if val is not None:
+ if source == '' or realpath(source).startswith(exdoc['input_root']):
+ matched = joinpath(exdoc['output_root'], '$$_ECLDOC-FORM_$$', val)
+ break
+ return matched
+
+ def findInTree(self, fullname, tree, child_root):
+ if type(tree) == dict:
+ if len(fullname) == 0: return joinpath(child_root, 'pkg.toc')
+ if fullname[0] in tree:
+ return self.findInTree(fullname[1:],
+ tree[fullname[0]]['tree'],
+ joinpath(child_root, tree[fullname[0]]['key']))
+ return None
+
+ return tree
diff --git a/ecldoc/genXML.py~ b/ecldoc/genXML.py~
new file mode 100644
index 0000000..0696ba4
--- /dev/null
+++ b/ecldoc/genXML.py~
@@ -0,0 +1,486 @@
+import os
+import re
+import json
+import subprocess
+from copy import deepcopy
+
+from lxml import etree
+from lxml.builder import E
+
+from .Utils import genPathTree
+from .Utils import joinpath, relpath, dirname, realpath
+from .Utils import read_file
+
+from .parseDoc import parseDocstring, cleansign, breaksign
+
+
+class ParseXML(object):
+ '''
+ ParseXML is main class to generate XML Documentation for a single ecl file
+ '''
+ def __init__(self, generator, ecl_file):
+ '''
+ :param generator: GenXML object creating this object
+ :param ecl_file: path to ecl_file to parse
+ '''
+ self.input_root = generator.input_root
+ self.output_root = generator.output_root
+ self.ecl_file = ecl_file
+
+ ### complete path to ecl file
+ self.input_file = joinpath(self.input_root, ecl_file)
+
+ ### Path to file where output from eclcc -M will be stored (called xmlOriginal)
+ self.xml_orig_root = generator.xml_orig_root
+ self.xml_orig_file = joinpath(self.xml_orig_root, ecl_file + '.xml')
+
+ ### Path to file where processed xml from xmlOriginal will be stored
+ self.xml_root = generator.xml_root
+ self.xml_file = joinpath(self.xml_root, ecl_file + '.xml')
+ self.xml_dir = dirname(self.xml_file)
+
+ self.generator = generator
+ self.options = generator.options
+
+ ### Check if any definitions remaining in xml tree after processing
+ self.internal = False
+
+ #local
+ self.depends = {}
+ self.src = None
+
+ def parse(self):
+ '''
+ Main function called by generator on this object
+ Generates both XMLOriginal and processed XML Doc
+ '''
+
+ ### Run eclcc -M on input_file to generate xmlOriginal doc
+ os.makedirs(dirname(self.xml_orig_file), exist_ok=True)
+ eclcc_options = ' '.join(self.options['eclcc'])
+ p = subprocess.call(['eclcc -M ' + eclcc_options +
+ ' -o ' + self.xml_orig_file + ' ' +
+ self.input_file], shell=True, cwd=self.input_root)
+ print("ECLCC ||| File : ", self.ecl_file, " ||| Output Code : ", p)
+
+ if p > 0 :
+ print("ECLCC Error : Removing file from documentation source tree")
+ self.internal = True
+ return
+
+ tree = etree.parse(self.xml_orig_file)
+ root = tree.getroot()
+
+ ### Main loop of this function
+ ### Loops over all Source Tags in xmlOriginal
+
+ for src in root.iter('Source'):
+ attribs = src.attrib
+ srcpath = realpath(attribs['sourcePath'])
+
+ ### Check each Source Tag in xmlOriginal to see if it match input_file
+ ### If yes, keep it, else replace that Source Tag with Depend Tag
+
+ if os.path.exists(srcpath) and srcpath.startswith(self.input_root):
+ attribs['sourcePath'] = srcpath
+ src_relpath = relpath(srcpath, self.input_root)
+ tgtpath = joinpath(self.xml_root, (src_relpath + '.xml'))
+ tgtpath = realpath(tgtpath)
+ tgtpath = relpath(tgtpath, self.xml_dir)
+ attribs['target'] = tgtpath
+ if src_relpath == self.ecl_file:
+ continue
+
+ root.remove(src)
+ depend = etree.Element('Depends', sourcePath=attribs['sourcePath'])
+
+ if 'name' in attribs:
+ depend.set('name', attribs['name'])
+
+ ### Create a entry in depend dictionary for current Source
+ ### Used to map Imports and other targets to correct file
+ self.depends[tuple(attribs['name'].lower().split('.'))] = depend
+
+ ### Set Target Path to processed XML for given Dependency
+ ### Match its source path to current source tree and external documentation (if any)
+ if 'target' in attribs:
+ depend.set('target', attribs['target'])
+ else:
+ if 'name' in attribs:
+ matched = self.generator.matchExdoc(attribs['name'], source=attribs['sourcePath'])
+ if matched is not None:
+ depend.set('target', matched + '.xml')
+ else:
+ depend.set('target', attribs['sourcePath'])
+ else:
+ depend.set('target', attribs['sourcePath'])
+
+ root.insert(-1, depend)
+
+ ### Only Source Tag corresponding to input_file is left and is processed
+ self.src = root.find('Source')
+ self.parseSource()
+
+ ### If no definitions left, set internal to True
+ if len(self.src.findall('Definition')) == 0:
+ self.internal = True
+
+ ### write processed XML to xml_file if not internal
+ if self.internal is False:
+ os.makedirs(dirname(self.xml_file), exist_ok=True)
+ tree.write(self.xml_file, xml_declaration=True, encoding='utf-8')
+
+ def parseSource(self):
+ attribs = self.src.attrib
+ srcpath = realpath(attribs['sourcePath'])
+ print('parseSource srcpath = ', srcpath)
+ self.text = read_file(srcpath);
+
+ ### Append to depend dictionary entry correspong to given file
+ ### for self referential targets
+ if 'name' in attribs:
+ self.depends[tuple(attribs['name'].lower().split('.'))] = self.src
+
+ for imp in self.src.iter('Import'):
+ self.parseImport(imp)
+
+ for doc in self.src.iter('Documentation'):
+ self.parseDocumentation(doc)
+
+ for defn in self.src.findall('Definition'):
+ if self.checkDefinition(defn):
+ self.src.remove(defn)
+ else:
+ self.parseDefinition(defn)
+
+ ### Documentation for first Definition in Source become Documentation
+ ### for the source. Useful in displaying documentation in TOCs
+ maindefn = self.src.find("Definition")
+ if maindefn is not None and maindefn.find('Documentation') is not None:
+ docstring = deepcopy(maindefn.find('Documentation'))
+ self.src.append(docstring)
+ else:
+ self.src.append(E('Documentation', E('content', ' ')))
+
+ def parseDefinition(self, defn):
+ print('parseDefinition defn = ', defn)
+ attribs = defn.attrib
+ self.generateSignature(defn)
+
+ if 'fullname' in attribs:
+ fullname = attribs['fullname']
+ best_depend = self.matchPath(fullname)
+ if best_depend is not None and best_depend != self.src:
+ attribs['target'] = best_depend.attrib['target']
+ elif 'name' in attribs:
+ attribs['fullname'] = 'ecldoc-' + attribs['name']
+
+ for childdefn in defn.findall('Definition'):
+ ### Do not parse children of inherited attributes, in addition to normal checks
+ if attribs['inherittype'] == 'inherited' or self.checkDefinition(childdefn):
+ defn.remove(childdefn)
+ else:
+ self.parseDefinition(childdefn)
+
+ parents = defn.find('Parents')
+ if parents is not None:
+ self.parseParents(parents)
+
+ ### Remove unnecessary attributes
+ attribs.pop('body', None)
+ attribs.pop('start', None)
+ attribs.pop('end', None)
+
+ def generateSignature(self, defn):
+ '''
+ Generate attribute signature by reading the ecl source file where
+ given Definition is present.
+ Signature is text between EXPORT and :=
+ '''
+ attribs = defn.attrib
+ name = attribs['name']
+ print('generateSignature name = ', name)
+ is_scope = 'type' in attribs and attribs['type'] in ['module', 'interface']
+ has_params = defn.find('Params') is not None
+
+ ecl_text = self.text
+ gen_sign = False
+
+ if 'fullname' in attribs:
+ gen_sign = True
+ ### MORE : if definition is scope without params, do not read file for it.
+ ### Problem in fullname resolution
+ if is_scope and (not has_params) :
+ gen_sign = False
+ else :
+ ### If definition signature in external file (eg inherited attributes)
+ ### based on fullname, Find that file
+ best_depend = self.matchPath(attribs['fullname'])
+ if best_depend is not None and best_depend != self.src:
+ print( 'generateSignature fullname = ', best_depend.attrib['sourcePath'])
+ ecl_text = read_file(best_depend.attrib['sourcePath']);
+
+ sign = etree.Element('Signature')
+ sign.text = name
+ if gen_sign and ('start' in attribs) and ('body' in attribs) :
+ sign.text = ecl_text[int(attribs['start'])-2:int(attribs['body'])-2]
+ sign.text = cleansign(sign.text)
+
+ ### break sign text into return type, name and parameter segments (Heuristic only)
+ ### Indent len = strlen(ret) + strlen(name)
+ ret, param, indent_len = breaksign(name, sign.text)
+
+ sign.attrib['name'] = name
+ sign.attrib['ret'] = ret
+ sign.attrib['param'] = param
+ sign.attrib['hlen'] = str(indent_len)
+ defn.insert(-1, sign)
+
+ def parseDocumentation(self, doc):
+ content = doc.find('content')
+ #print('parseDocumentation doc = ', etree.tostring(doc))
+ #print('parseDocumentation content = ', etree.tostring(content))
+ elements = parseDocstring(content.text)
+ doc.remove(content)
+ ### Append all parsed doctags from docstring as XML Tags
+ for tag in elements:
+ for desc in elements[tag]:
+ doc.append(desc)
+
+ def parseImport(self, imp):
+ attribs = imp.attrib
+ ### Match Reference of Import to correct File/Directory Path for Linking
+ if 'ref' in attribs:
+ attribs['target'] = self.matchReference(attribs['ref'])
+
+ attribs.pop('body', None)
+ attribs.pop('start', None)
+ attribs.pop('end', None)
+ attribs.pop('fullname', None)
+ attribs.pop('line', None)
+ attribs.pop('inherittype', None)
+ if imp.find('Documentation') is not None :
+ imp.remove(imp.find('Documentation'))
+
+ def parseParents(self, parents):
+ for parent in parents.findall('Parent'):
+ attribs = parent.attrib
+ ### Match Reference (Fullname) of parent to correct File/Directory Path for Linking
+ if 'ref' in attribs:
+ attribs['target'] = self.matchReference(attribs['ref'])
+
+ def matchReference(self, refpath):
+ '''
+ Match reference/fullname to correct file/dir path
+ '''
+ target = ''
+ ### First search among Dependency Files
+ best_depend = self.matchPath(refpath)
+ if best_depend is not None:
+ target = best_depend.attrib['target']
+ else:
+ ### Then search in External Documentation (assumption : only directory paths left)
+ matched = self.generator.matchExdoc(refpath)
+ if matched is not None:
+ target = matched + '.xml'
+ else:
+ ### Simply Convert reference to path (assumption : only directory paths left)
+ refpath = refpath.split('.') + ['pkg.toc.xml']
+ target = joinpath(self.xml_root, *refpath)
+ target = relpath(target, self.xml_dir)
+ return target
+
+ def matchPath(self, path):
+ '''
+ Find best prefix match for given fullname/reference in Depend Dictionary
+ '''
+ path = tuple(path.lower().split('.'))
+ current_prefix = ()
+ for depend_path in self.depends:
+ prefix = os.path.commonprefix([path, depend_path])
+ if len(prefix) > len(current_prefix):
+ current_prefix = prefix
+
+ if len(current_prefix) > 0 and current_prefix in self.depends:
+ return self.depends[current_prefix]
+
+ return None
+
+ def checkDefinition(self, defn):
+ '''
+ Check if definition should be expanded or removed
+ True : Definition should be removed
+ '''
+ test_1 = 'exported' not in defn.attrib
+ test_2 = self.options['nodoc'] and (defn.find('Documentation') is None)
+ test_3 = (self.options['nointernal'] and
+ (defn.find('Documentation') is not None) and
+ (defn.find('Documentation').find('internal') is not None))
+ return test_1 or test_2 or test_3
+
+###########################################################################################
+
+def parseBundle(generator, ecl_file):
+ input_file = joinpath(generator.input_root, ecl_file)
+ dirpath = dirname(input_file)
+
+ dirpath_xml_orig = dirname(joinpath(generator.xml_orig_root, ecl_file))
+ dirpath_xml = dirname(joinpath(generator.xml_root, ecl_file))
+
+ bundle_orig_path = joinpath(dirpath_xml_orig, 'bundle.orig.out')
+ bundle_xml_path = joinpath(dirpath_xml, 'bundle.xml')
+
+ os.makedirs(dirpath_xml_orig, exist_ok=True)
+ p = subprocess.call(['ecl-bundle info ' + dirpath + ' > ' + bundle_orig_path], shell=True)
+ print("ECL-BUNDLE ||| ", "Bundle File : ", dirpath, "Output Code : ", p)
+
+ data = read_file(bundle_orig_path).split('\n')
+ data = [x.split(':', 1) for x in data]
+ data = [(x[0].strip(), x[1].strip()) for x in data if len(x) == 2]
+ root = etree.Element("Bundle")
+ for k in data:
+ node = etree.Element(k[0])
+ node.text = k[1]
+ root.append(node)
+
+ os.makedirs(dirname(bundle_xml_path), exist_ok=True)
+ etree.ElementTree(root).write(bundle_xml_path, pretty_print=True, xml_declaration=True, encoding='utf-8')
+
+###########################################################################################
+
+class GenXML(object):
+ '''
+ Generate XML Doc all files in ecl_files.
+ Two types of XML Docs : xmlOriginal (eclcc output) and XML (after processing)
+ '''
+ def __init__(self, input_root, output_root, ecl_files, options):
+ self.input_root = input_root
+ self.output_root = output_root
+ ### Recreate Source Tree as dictionary from ecl file paths
+ self.ecl_file_tree = genPathTree(ecl_files)
+ self.options = options
+
+ ### Folder where xmlOriginal files are stored
+ self.xml_orig_root = joinpath(output_root, 'xmlOriginal')
+ os.makedirs(self.xml_orig_root, exist_ok=True)
+
+ ### Folder where processed XML files are stored
+ self.xml_root = joinpath(output_root, 'xml')
+ os.makedirs(self.xml_root, exist_ok=True)
+
+ def gen(self, key, node, xml_root, content_root):
+ '''
+ Recursively parse source tree dictionary.
+ If current_node is file : parse file using parseXML or parseBundle
+ Else If : current_node is directory : recurse and generate pkg.toc.xml for that dir
+ :param key: string | the name of current_node in path tree
+ :param node: dict | the parent of current_node (parent is passed so that current_node
+ can be deleted if it is internal file)
+ :param content_root: string | real path to current node
+ :param xml_root: lxml.Element | current node in xml repr of path tree for TOCs
+ '''
+ current_node = node[key]
+ if type(current_node) != dict:
+ if key == 'bundle.ecl':
+ parseBundle(self, current_node)
+ return
+ ecl_file = current_node
+ parser = ParseXML(self, ecl_file)
+ parser.parse()
+ if parser.internal:
+ del node[key]
+ else:
+ file = etree.Element('file')
+ file.attrib['name'] = key + '.xml'
+ file.text = current_node
+ xml_root.append(file)
+ else:
+ folder = etree.Element('folder')
+ xml_root.append(folder)
+ folder.attrib['name'] = key
+
+ child_keys = list(current_node.keys())
+ for chkey in child_keys:
+ child_root = joinpath(content_root, chkey)
+ self.gen(chkey, current_node, folder, child_root)
+
+ os.makedirs(content_root, exist_ok=True)
+ toc_file = joinpath(content_root, 'pkg.toc.xml')
+ etree.ElementTree(folder).write(toc_file, pretty_print=True, xml_declaration=True, encoding='utf-8')
+ self.genJsonTree(current_node, content_root)
+
+ def run(self):
+ '''
+ Main function called by ecldoc
+ '''
+ print("\nGenerating XML Documentation ... ")
+ self.processExternalDoc()
+ root = etree.Element('Root')
+ self.gen('root', self.ecl_file_tree, root, self.xml_root)
+
+ #######################################################################
+ # Generate tree for files and subfolders in each folder for given run #
+ # Currently used by External Dodc matching system . #
+ #######################################################################
+
+ def genJsonTree(self, tree, output_path='', dump=True):
+ json_output = {}
+ new_tree = deepcopy(tree)
+ self.processJsonTree(new_tree)
+ json_output['tree'] = new_tree
+ json_output['output_root'] = self.output_root
+ json_output['input_root'] = self.input_root
+ if output_path != '' :
+ rel_output_path = relpath(output_path, self.xml_root)
+ json_output['include_path'] = os.path.normpath(joinpath(self.input_root, rel_output_path))
+ else :
+ json_output['include_path'] = self.input_root
+ if dump:
+ json.dump(json_output, open(joinpath(output_path, 'tree.json'), 'w'), sort_keys=True, indent=4)
+
+ return json_output
+
+ def processJsonTree(self, tree):
+ keys = list(tree.keys())
+ for key in keys:
+ if type(tree[key]) == dict:
+ self.processJsonTree(tree[key])
+ node = tree[key]
+ del tree[key]
+ tree[re.sub(r'\.ecl$', '', key.lower())] = {'key': key, 'tree': node}
+
+ ###############################################################
+ # Process External Docs and provide match function for parser #
+ ###############################################################
+
+ def processExternalDoc(self):
+ self.exdocs = []
+ currdoc = self.genJsonTree(self.ecl_file_tree['root'], dump=False)
+ self.exdocs.append(currdoc)
+ for path in self.options['exdoc_paths']:
+ json_file = joinpath(path, 'tree.json')
+ assert os.path.isfile(json_file), ("Exdoc file does not exists : " + json_file)
+ external_doc = json.load(open(json_file))
+ self.exdocs.append(external_doc)
+
+ def matchExdoc(self, fullname, source=''):
+ fullname = tuple(fullname.lower().split('.'))
+ matched = None
+ for exdoc in self.exdocs:
+ val = self.findInTree(fullname, exdoc['tree'], '')
+ if val is not None:
+ if source == '' or realpath(source).startswith(exdoc['input_root']):
+ matched = joinpath(exdoc['output_root'], '$$_ECLDOC-FORM_$$', val)
+ break
+ return matched
+
+ def findInTree(self, fullname, tree, child_root):
+ if type(tree) == dict:
+ if len(fullname) == 0: return joinpath(child_root, 'pkg.toc')
+ if fullname[0] in tree:
+ return self.findInTree(fullname[1:],
+ tree[fullname[0]]['tree'],
+ joinpath(child_root, tree[fullname[0]]['key']))
+ return None
+
+ return tree
diff --git a/ecldoc/parseDoc.py b/ecldoc/parseDoc.py
new file mode 100644
index 0000000..43f06f7
--- /dev/null
+++ b/ecldoc/parseDoc.py
@@ -0,0 +1,196 @@
+import re
+from lxml import etree
+import lxml.html as H
+from collections import defaultdict
+
+def parseDocstring(docstring) :
+ '''
+ Parse Docstring as returned by eclcc,
+ break into individual tags and
+ return them as XML Elements
+ '''
+ docstring = re.sub(r'\n\s*\*', '\n', docstring)
+ docstring = re.sub(r'\r', ' ', docstring)
+ docstring = docstring.strip().split('\n')
+
+ docdict = defaultdict(list)
+ current_tag = 'content'
+ current_text = ""
+ for line in docstring :
+ is_tag = re.search(r'^\s*@', line)
+ if is_tag :
+ if current_tag == 'content' :
+ docdict['firstline'] = [findFirstLine(current_text)]
+ docdict[current_tag].append(current_text.strip())
+ line = re.split(r'\s', line.lstrip(), maxsplit=1)
+ tag = line[0][1:]
+ if len(line) > 1:
+ text = line[1]
+ else:
+ text = ""
+ current_tag = tag
+ current_text = text + '\n'
+ else :
+ current_text += line + '\n'
+
+
+ if current_tag == 'content' :
+ docdict['firstline'] = [findFirstLine(current_text)]
+ docdict[current_tag].append(current_text.strip())
+
+ for tag in docdict :
+ for i, desc in enumerate(docdict[tag]) :
+ root = H.fragment_fromstring(desc, create_parent='div')
+ removeWS(root)
+ content = etree.Element(tag)
+ content.text = etree.tostring(root)
+ content.text = re.sub(r'^', '', content.text)
+ content.text = re.sub(r'
$', '', content.text)
+ docdict[tag][i] = content
+
+ return docdict
+
+def removeWS(element) :
+ '''
+ Format Whitespace in HTML elements in docstring
+ coming from parsed XML Output of ECL File
+ '''
+ if element.tag == 'pre' :
+ lines = element.text.split('\n')
+ element.text = lines[0]
+
+ for line in lines[1:] :
+ br = etree.Element('br')
+ br.tail = line
+ element.append(br)
+ return
+
+ if element.text is not None :
+ element.text = re.sub(r'\s+', ' ', element.text)
+ for e in element.iterchildren() :
+ if e.tail :
+ e.tail = re.sub(r'\s+', ' ', e.tail)
+
+ removeWS(e)
+
+def findFirstLine(current_text) :
+ '''
+ Find First line in docstring content section to be used as caption
+ in TOC and Tree
+ '''
+ split_1 = re.split(r'\.\s|\.$', current_text.strip(), maxsplit=1)
+ if len(split_1) == 2 :
+ return split_1[0].strip()
+
+ split_2 = re.split(r'\n', current_text.strip(), maxsplit=1)
+ return split_2[0].strip()
+
+##########################################################
+
+def construct_type(ele) :
+ '''
+ Parse Type Tree into single string representation
+ '''
+ if ele is None : return ''
+ if type(ele) == list : return ''
+
+ typestring = ''
+ attribs = ele.attrib
+ typename = attribs['type']
+ if typename == 'record' :
+ if 'unnamed' in attribs :
+ typestring += '{ '
+ fields = []
+ for field in ele.findall('Field') :
+ fields.append(construct_type(field.find('./Type')) + " " + field.attrib['name'])
+ typestring += ' , '.join(fields) + ' }'
+ else :
+ typestring += attribs['origfn'] if 'origfn' in attribs else attribs['name']
+ else :
+ typestring += typename.upper()
+ if 'origfn' in attribs :
+ typestring += ' ( ' + attribs['origfn'] + ' )'
+ elif 'name' in attribs :
+ typestring += ' ( ' + attribs['name'] + ' )'
+
+ if typename == 'function' :
+ typestring += ' [ '
+ params = []
+ for p in ele.find('Params').findall('Type') :
+ params.append(construct_type(p))
+ typestring += ' , '.join(params) + ' ]'
+
+ if ele.find('./Type') is not None :
+ typestring += ' ( ' + construct_type(ele.find('./Type')) + ' )'
+
+ return typestring
+
+##########################################################
+
+def cleansign(text) :
+ '''
+ Remove irrelevant prefix and suffixes from signature
+ '''
+ print('cleansign in = "', text, '"')
+ endpos = text.rfind(':=');
+ if endpos >= 0:
+ text = text[:endpos]
+ text = re.sub(r'^export', '', text.strip(), flags=re.I)
+ text = re.sub(r'^shared', '', text, flags=re.I)
+ text = re.sub(r';$', '', text, flags=re.I)
+ text = re.sub(r'\s+', ' ', text.strip())
+ print('cleansign out = ', text)
+ return text
+
+def breaksign(name, text) :
+ '''
+ Heuristically break signature of ECL Definition
+ recovered from ecl file into "return name (Paramters)"
+ '''
+ print('breaksign line = ', name, text)
+ name = name.lower()
+ string = ' ' + text.lower() + ' '
+ pos = 1
+ open_bracks = ['{', '(', '[']
+ close_bracks = ['}', ')', ']']
+ stack = []
+
+ ret, param = '', ''
+ indent_len = 0
+ name_len = len(name)
+
+ for i in range(1, len(string)) :
+ c = string[i]
+ if c in open_bracks :
+ stack.append(c)
+ elif c in close_bracks :
+ if stack[-1] == open_bracks[close_bracks.index(c)] :
+ stack = stack[:-1]
+ else :
+ if len(stack) == 0 :
+ m = re.match(r'[\s\)]' + name + r'([^0-9A-Za-z_])', string[pos-1:])
+ if m :
+ pos = pos - 1
+ ret = text[:pos]
+ param = text[pos + name_len:]
+ indent_len = pos + name_len
+ break
+
+ pos += 1
+
+ return ret.strip(), param.strip(), indent_len
+
+##########################################################
+
+def getTags(doc) :
+ '''
+ Convert XML Documentation (generated using parseDocstring)
+ back to JSON (ie Python Dictionary)
+ '''
+ tag_dict = defaultdict(list)
+ if doc is None : return tag_dict
+ for child in doc.getchildren() :
+ tag_dict[child.tag].append(child.text)
+
+ return tag_dict
+
diff --git a/ecldoc/parseDoc.py~ b/ecldoc/parseDoc.py~
new file mode 100644
index 0000000..c6a42a9
--- /dev/null
+++ b/ecldoc/parseDoc.py~
@@ -0,0 +1,196 @@
+import re
+from lxml import etree
+import lxml.html as H
+from collections import defaultdict
+
+def parseDocstring(docstring) :
+ '''
+ Parse Docstring as returned by eclcc,
+ break into individual tags and
+ return them as XML Elements
+ '''
+ docstring = re.sub(r'\n\s*\*', '\n', docstring)
+ docstring = re.sub(r'\r', ' ', docstring)
+ docstring = docstring.strip().split('\n')
+
+ docdict = defaultdict(list)
+ current_tag = 'content'
+ current_text = ''
+ for line in docstring :
+ is_tag = re.search(r'^\s*@', line)
+ if is_tag :
+ if current_tag == 'content' :
+ docdict['firstline'] = [findFirstLine(current_text)]
+ docdict[current_tag].append(current_text.strip())
+ line = re.split(r'\s', line.lstrip(), maxsplit=1)
+ tag = line[0][1:]
+ if len(line) > 1:
+ text = line[1]
+ else:
+ text = ''
+ current_tag = tag
+ current_text = text + '\n'
+ else :
+ current_text += line + '\n'
+
+
+ if current_tag == 'content' :
+ docdict['firstline'] = [findFirstLine(current_text)]
+ docdict[current_tag].append(current_text.strip())
+
+ for tag in docdict :
+ for i, desc in enumerate(docdict[tag]) :
+ root = H.fragment_fromstring(desc, create_parent='div')
+ removeWS(root)
+ content = etree.Element(tag)
+ content.text = etree.tostring(root)
+ content.text = re.sub(r'^', '', content.text)
+ content.text = re.sub(r'
$', '', content.text)
+ docdict[tag][i] = content
+
+ return docdict
+
+def removeWS(element) :
+ '''
+ Format Whitespace in HTML elements in docstring
+ coming from parsed XML Output of ECL File
+ '''
+ if element.tag == 'pre' :
+ lines = element.text.split('\n')
+ element.text = lines[0]
+
+ for line in lines[1:] :
+ br = etree.Element('br')
+ br.tail = line
+ element.append(br)
+ return
+
+ if element.text is not None :
+ element.text = re.sub(r'\s+', ' ', element.text)
+ for e in element.iterchildren() :
+ if e.tail :
+ e.tail = re.sub(r'\s+', ' ', e.tail)
+
+ removeWS(e)
+
+def findFirstLine(current_text) :
+ '''
+ Find First line in docstring content section to be used as caption
+ in TOC and Tree
+ '''
+ split_1 = re.split(r'\.\s|\.$', current_text.strip(), maxsplit=1)
+ if len(split_1) == 2 :
+ return split_1[0].strip()
+
+ split_2 = re.split(r'\n', current_text.strip(), maxsplit=1)
+ return split_2[0].strip()
+
+##########################################################
+
+def construct_type(ele) :
+ '''
+ Parse Type Tree into single string representation
+ '''
+ if ele is None : return ''
+ if type(ele) == list : return ''
+
+ typestring = ''
+ attribs = ele.attrib
+ typename = attribs['type']
+ if typename == 'record' :
+ if 'unnamed' in attribs :
+ typestring += '{ '
+ fields = []
+ for field in ele.findall('Field') :
+ fields.append(construct_type(field.find('./Type')) + " " + field.attrib['name'])
+ typestring += ' , '.join(fields) + ' }'
+ else :
+ typestring += attribs['origfn'] if 'origfn' in attribs else attribs['name']
+ else :
+ typestring += typename.upper()
+ if 'origfn' in attribs :
+ typestring += ' ( ' + attribs['origfn'] + ' )'
+ elif 'name' in attribs :
+ typestring += ' ( ' + attribs['name'] + ' )'
+
+ if typename == 'function' :
+ typestring += ' [ '
+ params = []
+ for p in ele.find('Params').findall('Type') :
+ params.append(construct_type(p))
+ typestring += ' , '.join(params) + ' ]'
+
+ if ele.find('./Type') is not None :
+ typestring += ' ( ' + construct_type(ele.find('./Type')) + ' )'
+
+ return typestring
+
+##########################################################
+
+def cleansign(text) :
+ '''
+ Remove irrelevant prefix and suffixes from signature
+ '''
+ print('cleansign in = "', text, '"')
+ endpos = text.rfind(':=');
+ if endpos >= 0:
+ text = text[:endpos]
+ text = re.sub(r'^export', '', text.strip(), flags=re.I)
+ text = re.sub(r'^shared', '', text, flags=re.I)
+ text = re.sub(r';$', '', text, flags=re.I)
+ text = re.sub(r'\s+', ' ', text.strip())
+ print('cleansign out = ', text)
+ return text
+
+def breaksign(name, text) :
+ '''
+ Heuristically break signature of ECL Definition
+ recovered from ecl file into "return name (Paramters)"
+ '''
+ print('breaksign line = ', name, text)
+ name = name.lower()
+ string = ' ' + text.lower() + ' '
+ pos = 1
+ open_bracks = ['{', '(', '[']
+ close_bracks = ['}', ')', ']']
+ stack = []
+
+ ret, param = '', ''
+ indent_len = 0
+ name_len = len(name)
+
+ for i in range(1, len(string)) :
+ c = string[i]
+ if c in open_bracks :
+ stack.append(c)
+ elif c in close_bracks :
+ if stack[-1] == open_bracks[close_bracks.index(c)] :
+ stack = stack[:-1]
+ else :
+ if len(stack) == 0 :
+ m = re.match(r'[\s\)]' + name + r'([^0-9A-Za-z_])', string[pos-1:])
+ if m :
+ pos = pos - 1
+ ret = text[:pos]
+ param = text[pos + name_len:]
+ indent_len = pos + name_len
+ break
+
+ pos += 1
+
+ return ret.strip(), param.strip(), indent_len
+
+##########################################################
+
+def getTags(doc) :
+ '''
+ Convert XML Documentation (generated using parseDocstring)
+ back to JSON (ie Python Dictionary)
+ '''
+ tag_dict = defaultdict(list)
+ if doc is None : return tag_dict
+ for child in doc.getchildren() :
+ tag_dict[child.tag].append(child.text)
+
+ return tag_dict
+
diff --git a/makeMLDoc.sh b/makeMLDoc.sh
new file mode 100644
index 0000000..eb76e3a
--- /dev/null
+++ b/makeMLDoc.sh
@@ -0,0 +1,57 @@
+#!/bin/sh
+# Generate each bundle's documentation
+
+# ML_Core
+ecldoc --iroot ~/source/ML_Core --oroot ~/docs/ML_Core --format "html,pdf" --hideInternal
+
+# PBblas
+ecldoc --iroot ~/source/PBblas --oroot ~/docs/PBblas --eclcc=" -I ~/source" --exdocpaths ~/docs/ML_Core/xml --format "html,pdf" --exclude "internal/*.ecl,test/*.ecl,performance/*.ecl,ecl/*.ecl" --hideInternal
+
+# The following have dependencies on ML_Core and sometimes PBblas, so we want to stitch those
+# together. We use the --eclcc and exdocpaths options to do that.
+
+# LearningTrees
+ecldoc --iroot ~/source/LearningTrees --oroot ~/docs/LearningTrees --eclcc=" -I ~/source" --exdocpaths ~/docs/ML_Core/xml --format "html,pdf" --exclude "internal/*.ecl,test/*.ecl,test/datasets/*.ecl" --hideInternal
+
+# LogisticRegression
+ecldoc --iroot ~/source/LogisticRegression --oroot ~/docs/LogisticRegression --eclcc=" -I ~/source" --exdocpaths docs/ML_Core/xml --format "html,pdf" --exclude "IRLS/*.ecl,performance/*.ecl,validation/*.ecl" --hideInternal
+
+# LinearRegression
+ecldoc --iroot ~/source/LinearRegression --oroot ~/docs/LinearRegression --eclcc=" -I ~/source" --exdocpaths docs/ML_Core/xml,docs/PBblas/xml --format "html,pdf" --exclude "performance/*.ecl,test/*.ecl,test/Datasets/*.ecl,test/Utils/*.ecl" --hideInternal
+
+# GLM
+ecldoc --iroot ~/source/GLM --oroot ~/docs/GLM --eclcc=" -I ~/source" --exdocpaths docs/ML_Core/xml,docs/PBblas/xml --format "html,pdf" --exclude "performance/*.ecl,validation/*.ecl, IRLS/*.ecl,Datasets/*.ecl" --hideInternal
+
+# SupportVectorMachines
+ecldoc --iroot ~/source/SupportVectorMachines --oroot ~/docs/SupportVectorMachines --eclcc=" -I ~/source" --exdocpaths "docs/ML_Core/xml" --format "html,pdf" --exclude "Performance/*.ecl,Validation/*.ecl, Datasets/*.ecl, Examples/*.ecl, libsvm/*.ecl" --hideInternal
+
+# KMeans
+ecldoc --iroot ~/source/KMeans --oroot ~/docs/KMeans --eclcc=" -I ~/source" --exdocpaths docs/ML_Core/xml,docs/PBblas/xml --format "html,pdf" --exclude "test/*.ecl,test/datasets/*.ecl, test/Performance/*.ecl, test/Validation/*.ecl" --hideInternal
+
+# TextVectors
+ecldoc --iroot ~/source/TextVectors --oroot ~/docs/TextVectors --eclcc=" -I ~/source" --exdocpaths ~/docs/ML_Core/xml --format "html,pdf" --exclude "internal/*.ecl,test/*.ecl" --hideInternal
+
+# GNN
+ecldoc --iroot ~/source/GNN --oroot ~/docs/GNN --eclcc=" -I ~/source" --exdocpaths ~/docs/ML_Core/xml --format "html,pdf" --exclude "Internal/*.ecl,Test/*.ecl,Test/HARTests/*.ecl" --hideInternal
+
+# DBSCAN
+ecldoc --iroot ~/source/dbscan --oroot ~/docs/dbscan --eclcc=" -I ~/source" --exdocpaths ~/docs/ML_Core/xml --format "html,pdf" --exclude "internal/*.ecl,tests/*.ecl,tests/datasets/*.ecl" --hideInternal
+
+# HPCC-Causality
+ecldoc --iroot ~/source/HPCC_Causality --oroot ~/docs/HPCC_Causality --eclcc=" -I ~/source" --format "html,pdf" --exclude "internal/*.ecl,Test/*.ecl,Test/Causality/*.ecl,Test/Probability/*.ecl,Test/Synth/*.ecl,performance/*.ecl,ecl/*.ecl" --hideInternal
+
+# Now we copy the resulting index.pdf files to files in our publish area named correctly for each bundle.
+
+cp -f ~/docs/ML_Core/tex/index.pdf ~/share/Publish/ML_Core.pdf
+cp -f ~/docs/PBblas/tex/index.pdf ~/share/Publish/PBblas.pdf
+cp -f ~/docs/LinearRegression/tex/index.pdf ~/share/Publish/LinearRegression.pdf
+cp -f ~/docs/LogisticRegression/tex/index.pdf ~/share/Publish/LogisticRegression.pdf
+cp -f ~/docs/LearningTrees/tex/index.pdf ~/share/Publish/LearningTrees.pdf
+cp -f ~/docs/GLM/tex/index.pdf ~/share/Publish/GLM.pdf
+cp -f ~/docs/SupportVectorMachines/tex/index.pdf ~/share/Publish/SupportVectorMachines.pdf
+cp -f ~/docs/KMeans/tex/index.pdf ~/share/Publish/KMeans.pdf
+cp -f ~/docs/TextVectors/tex/index.pdf ~/share/Publish/TextVectors.pdf
+cp -f ~/docs/GNN/tex/index.pdf ~/share/Publish/GNN.pdf
+cp -f ~/docs/dbscan/tex/index.pdf ~/share/Publish/dbscan.pdf
+cp -f ~/docs/HPCC_Causality/tex/index.pdf ~/share/Publish/HPCC_Causality.pdf
+
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..d9d9244
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,26 @@
+from setuptools import setup, find_packages
+
+import os
+
+
+
+def package_files(directory):
+ paths = []
+ for (path, directories, filenames) in os.walk(directory):
+ for filename in filenames:
+ paths.append(os.path.join('..', path, filename))
+ return paths
+
+
+extra_files = package_files('ecldoc/Templates')
+print(extra_files)
+setup(
+ name="ecldoc",
+ version="1.0.3",
+ packages=find_packages(),
+ install_requires=['Jinja2==2.9.6', 'lxml==4.9.0'],
+ package_data={'': extra_files},
+ scripts=['bin/ecldoc'],
+ url="https://github.com/lilyclemson/ECLDocGenerator",
+)
+
diff --git a/src/ecldoc/Publish/HPCC_Causality.pdf b/src/ecldoc/Publish/HPCC_Causality.pdf
new file mode 100644
index 0000000..450e181
Binary files /dev/null and b/src/ecldoc/Publish/HPCC_Causality.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/css/simple-sidebar.css b/testing/eclbundles/ml-bundles-docs/css/simple-sidebar.css
new file mode 100644
index 0000000..917b680
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/css/simple-sidebar.css
@@ -0,0 +1,252 @@
+ body {
+ overflow-x: hidden;
+ }
+
+
+ .topbar {
+ background: #1034A6;
+ color : #FFFFFF;
+ }
+
+.ham {
+ color : #FFFFFF;
+ }
+ .ham:hover {
+ background: #FFFFFF;
+ color : #000000;
+ }
+
+ .ham:active,
+ .ham:focus {
+ background: #FFFFFF;
+ color : #000000;
+ }
+
+.page-header {
+ border-color: #000;
+}
+
+.desc-panel {
+ border-radius: 0px;
+ border : 0px;
+ border-left: 1px solid;
+ border-color: #041451;
+ box-shadow: none;
+}
+
+.panel-group .panel+.panel {
+ margin-top: 20px;
+}
+
+.desc-panel > .panel-heading {
+ background: #e5e6e8;
+ border-radius: 0px;
+}
+
+.desc-panel-heading {
+ padding : 0px;
+ overflow : auto;
+ height : auto;
+ border-radius: 0px;
+ background: #e5e6e8;
+}
+
+.desc-panel-body {
+ background: #f9f9f9;
+}
+
+.desc-panel-footer {
+ padding-left : 10px;
+ padding-right: 0px;
+ padding-bottom: 1px;
+}
+
+.desc-panel-group {
+ margin : 0px;
+}
+
+.desc-type {
+ font-size : 16px;
+ color : #FFF;
+ font-weight: bold;
+ background: #041051;
+ width : 10%;
+ float : left;
+ padding : 6px;
+}
+
+.desc-sign {
+ font-size: 16px;
+ background: #e5e6e8;
+ color : #000;
+ width : 70%;
+ float : left;
+ padding: 6px;
+}
+
+.desc-btns {
+ float : left;
+ height : 100%;
+}
+
+.inherittype {
+ background : #C40233;
+ color : #FFF;
+ padding : 4px;
+ border-radius: 3px;
+ margin-left: 6px;
+ margin-right: 6px;
+}
+
+.doc-type {
+ font-size : 16px;
+ color : #111;
+ font-weight: bold;
+ background: #F4A966;
+ height : 100%;
+ width : 10%;
+ float : left;
+ padding : 6px;
+}
+
+.sign-list {
+ font-size: 16px;
+ background: #eaecef;
+}
+
+.ret {
+ width : 20%;
+ color : #d80d0d;
+}
+
+.name {
+ width : 10%;
+ font-weight: bold;
+ color : #000000;
+}
+
+.param {
+ width : 70%;
+ color : #550982;
+}
+
+
+/* Toggle Styles */
+
+#wrapper {
+ padding-left: 0;
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ -o-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+
+#wrapper.toggled {
+ padding-left: 250px;
+}
+
+#sidebar-wrapper {
+ z-index: 1000;
+ position: fixed;
+ left: 250px;
+ width: 0;
+ height: 100%;
+ margin-left: -250px;
+ overflow-y: auto;
+ background: #004953;
+ -webkit-transition: all 0.5s ease;
+ -moz-transition: all 0.5s ease;
+ -o-transition: all 0.5s ease;
+ transition: all 0.5s ease;
+}
+
+#wrapper.toggled #sidebar-wrapper {
+ width: 250px;
+}
+
+#page-content-wrapper {
+ width: 100%;
+ position: absolute;
+}
+
+#wrapper.toggled #page-content-wrapper {
+ position: absolute;
+ margin-right: -250px;
+}
+
+/* Sidebar Styles */
+
+.sidebar-nav {
+ position: absolute;
+ top: 0;
+ width: 250px;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.sidebar-nav li {
+ text-indent: 20px;
+ line-height: 40px;
+}
+
+.sidebar-nav li a {
+ display: block;
+ text-decoration: none;
+ color: #fff;
+}
+
+.sidebar-nav li a:hover {
+ text-decoration: none;
+ color: #fff;
+ background: rgba(255,255,255,0.5);
+}
+
+.sidebar-nav li a:active,
+.sidebar-nav li a:focus {
+ text-decoration: none;
+}
+
+.sidebar-nav > .sidebar-brand {
+ height: 65px;
+ font-size: 18px;
+ line-height: 60px;
+}
+
+.sidebar-nav > .sidebar-brand a {
+ color: #dddddd;
+}
+
+.sidebar-nav > .sidebar-brand a:hover {
+ color: #fff;
+ background: none;
+}
+
+
+@media(min-width:768px) {
+ #wrapper {
+ padding-left: 0;
+ }
+
+ #wrapper.toggled {
+ padding-left: 250px;
+ }
+
+ #sidebar-wrapper {
+ width: 0;
+ }
+
+ #wrapper.toggled #sidebar-wrapper {
+ width: 250px;
+ }
+
+ #page-content-wrapper {
+ padding: 10px;
+ position: relative;
+ }
+
+ #wrapper.toggled #page-content-wrapper {
+ position: relative;
+ margin-right: 0;
+ }
+}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LinearRegression/OLS.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LinearRegression/OLS.ecl.html
new file mode 100644
index 0000000..3cc5e97
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LinearRegression/OLS.ecl.html
@@ -0,0 +1,5243 @@
+
+
+
+
+
+
+
+
+ LinearRegression.OLS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ OLS
+
+
+
+
+
+
+
+
+
+ OLS
+ (DATASET(NumericField) X=empty_data, DATASET(NumericField) Y=empty_data)
+
+
+
+
+ Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear Regression Regression learns a function that maps a set of input data (independents) to one or more output variables (dependents)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear Regression Regression learns a function that maps a set of input data (independents) to one or more output variables (dependents). The resulting learned function is known as the model. That model can then be used repetitively to predict (i.e. estimate) the output value(s) based on new input data. Two major use cases are supported: 1) Learn and return a model 2) Use an existing (e.g. persisted) model to predict new values for Y Of course, both can be done in a single run. Alternatively, the model can be persisted and used indefinitely for prediction of Y values, as long as the record format has not changed, and the original training data remains representative of the population. OLS supports any number of independent variables (Multiple Regression) and multiple dependent variables (Multivariate Regression). In this way, multiple variables' values can be predicted from the same input (i.e. independent) data. Training data is presented as parameters to this module. When using a previously persisted model (use case 2 above), these parameters should be omitted. This module provides a rich set of analytics to assess the usefulness of the resulting linear regression model, and to determine the best subset of independent variables to include in the model. These include: For the whole model: - Analysis of Variance (ANOVA) - R-squared - Adjusted R-squared - F-Test - Akaike Information Criterion (AIC) For each coefficient: - Standard Error (SE) - T-statistic - P-value - Confidence Interval
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ Y
+ TABLE ( linearregression.numericfield ) -- The dependent variable training data in DATASET(NumericField) format. Each observation (e.g. record) is identified by 'id', and each feature is identified by field number. Omit this parameter when predicting from a persisted model.
+
+
+ X
+ TABLE ( linearregression.numericfield ) -- The independent variable training data in DATASET(NumericField) format. Each observation (e.g. record) is identified by 'id', and each feature is identified by field number (i.e. 'number'). Omit this parameter when predicting from a persisted model.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LinearRegression/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/LinearRegression/pkg.toc.html
new file mode 100644
index 0000000..faab26b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LinearRegression/pkg.toc.html
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+ LinearRegression
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+ LinearRegression
+
+
+
+
+ Version
+
+ 3.0.0
+
+
+
+
+ Description
+
+ Linear Regression Algorithm Bundle
+
+
+
+
+ License
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Copyright
+
+ Copyright (C) 2017 HPCC Systems
+
+
+
+
+ Authors
+
+ HPCCSystems
+
+
+
+
+ DependsOn
+
+ ML_Core, PBblas
+
+
+
+
+ Platform
+
+ 6.2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ OLS.ecl
+ Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear Regression Regression learns a function that maps a set of input data (independents) to one or more output variables (dependents)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/BinomialConfusion.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/BinomialConfusion.ecl.html
new file mode 100644
index 0000000..9fe49f4
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/BinomialConfusion.ecl.html
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.BinomialConfusion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ BinomialConfusion
+
+
+
+
+
+
+
+
+ DATASET(Types.Binomial_Confusion_Summary)
+ BinomialConfusion
+ (DATASET(Core_Types.Confusion_Detail) d)
+
+
+
+
+ Binomial confusion matrix
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Binomial confusion matrix. Work items with multinomial responses are ignored by this function. The higher value lexically is considered to be the positive indication.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ d
+ TABLE ( ml_core.types.confusion_detail ) -- confusion detail for the work item and classifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 true_positive , UNSIGNED8 true_negative , UNSIGNED8 false_positive , UNSIGNED8 false_negative , UNSIGNED8 cond_pos , UNSIGNED8 pred_pos , UNSIGNED8 cond_neg , UNSIGNED8 pred_neg , REAL8 prevalence , REAL8 accuracy , REAL8 true_pos_rate , REAL8 false_neg_rate , REAL8 false_pos_rate , REAL8 true_neg_rate , REAL8 pos_pred_val , REAL8 false_disc_rate , REAL8 false_omit_rate , REAL8 neg_pred_val } )
+ confusion matrix for a binomial classifier
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/BinomialLogisticRegression.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/BinomialLogisticRegression.ecl.html
new file mode 100644
index 0000000..68499bf
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/BinomialLogisticRegression.ecl.html
@@ -0,0 +1,530 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.BinomialLogisticRegression
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ BinomialLogisticRegression
+
+
+
+
+
+
+
+
+
+ BinomialLogisticRegression
+ (UNSIGNED max_iter=200, REAL8 epsilon=Constants.default_epsilon, REAL8 ridge=Constants.default_ridge)
+
+
+
+
+ Binomial logistic regression using iteratively re-weighted least squares
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Binomial logistic regression using iteratively re-weighted least squares.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ epsilon
+ REAL8 -- the minimum change in the Beta value estimate to continue
+
+
+ max_iter
+ UNSIGNED8 -- maximum number of iterations to try
+
+
+ ridge
+ REAL8 -- a value to populate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Confusion.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Confusion.ecl.html
new file mode 100644
index 0000000..774ea1c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Confusion.ecl.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Confusion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Confusion
+
+
+
+
+
+
+
+
+ DATASET(Confusion_Detail)
+ Confusion
+ (DATASET(DiscreteField) dependents, DATASET(DiscreteField) predicts)
+
+
+
+
+ Detail confusion records to compare actual versus predicted response variable values
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Detail confusion records to compare actual versus predicted response variable values.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ predicts
+ TABLE ( logisticregression.discretefield ) -- the predicted responses
+
+
+ dependents
+ TABLE ( logisticregression.discretefield ) -- the original response values
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier , INTEGER4 actual_class , INTEGER4 predict_class , UNSIGNED4 occurs , BOOLEAN correct } )
+ confusion counts by predicted and actual response values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Constants.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Constants.ecl.html
new file mode 100644
index 0000000..34c069b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Constants.ecl.html
@@ -0,0 +1,1755 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Constants
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/DataStats.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/DataStats.ecl.html
new file mode 100644
index 0000000..42993da
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/DataStats.ecl.html
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.DataStats
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ DataStats
+
+
+
+
+
+
+
+
+ DATASET(Types.Data_Info)
+ DataStats
+ (DATASET(Core_Types.NumericField) indep, DATASET(Core_Types.DiscreteField) dep, BOOLEAN field_details=FALSE)
+
+
+
+
+ Information about the datasets
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Information about the datasets. Without details the range for the x and y (independent and dependent) columns. Note that a column of all zero values cannot be distinguished from a missing column. When details are requested, the cardinality, minimum, and maximum values are returned. A zero cardinality is returned when the field cardinality exceeds the Constants.limit_card value.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ field_details
+ BOOLEAN -- Boolean directive to provide field level info
+
+
+ dep
+ TABLE ( ml_core.types.discretefield ) -- data set of dependent variables
+
+
+ indep
+ TABLE ( ml_core.types.numericfield ) -- data set of independent variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED4 dependent_fields , UNSIGNED4 dependent_records , UNSIGNED4 independent_fields , UNSIGNED4 independent_records , UNSIGNED4 dependent_count , UNSIGNED4 independent_count , TABLE ( logisticregression.types.field_desc ) dependent_stats , TABLE ( logisticregression.types.field_desc ) independent_stats } )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
returns
+
+
+
+
+ a data set of information on each work item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Deviance_Analysis.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Deviance_Analysis.ecl.html
new file mode 100644
index 0000000..7489e1e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Deviance_Analysis.ecl.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Deviance_Analysis
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Deviance_Analysis
+
+
+
+
+
+
+
+
+ DATASET(Types.AOD_Record)
+ Deviance_Analysis
+ (DATASET(Types.Deviance_Record) proposed, DATASET(Types.Deviance_Record) base)
+
+
+
+
+ Compare deviance information for an analysis of deviance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compare deviance information for an analysis of deviance.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ proposed
+ TABLE ( logisticregression.types.deviance_record ) -- the proposed model
+
+
+ base
+ TABLE ( logisticregression.types.deviance_record ) -- the base model for comparison
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 residual_df , UNSIGNED8 df , REAL8 residual_dev , REAL8 deviance , REAL8 p_value } )
+ the comparison of the deviance between the models
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Deviance_Detail.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Deviance_Detail.ecl.html
new file mode 100644
index 0000000..b2da0bd
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Deviance_Detail.ecl.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Deviance_Detail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Deviance_Detail
+
+
+
+
+
+
+
+
+ DATASET(Types.Observation_Deviance)
+ Deviance_Detail
+ (DATASET(Core_Types.DiscreteField) dependents, DATASET(Types.Raw_Prediction) predicts)
+
+
+
+
+ Detail deviance for each observation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Detail deviance for each observation.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ predicts
+ TABLE ( logisticregression.types.raw_prediction ) -- the predicted values of the response variable
+
+
+ dependents
+ TABLE ( ml_core.types.discretefield ) -- original dependent records for the model
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 classifier , INTEGER4 actual , INTEGER4 predicted , REAL8 mod_ll , REAL8 mod_dev_component , REAL8 mod_dev_residual , REAL8 nil_ll , REAL8 nil_dev_component , REAL8 nil_dev_residual } )
+ the deviance information by observation and the log likelihood of the predicted result.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Distributions.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Distributions.ecl.html
new file mode 100644
index 0000000..eb57308
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Distributions.ecl.html
@@ -0,0 +1,801 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Distributions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta.ecl.html
new file mode 100644
index 0000000..3435359
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta.ecl.html
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.ExtractBeta
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta_CI.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta_CI.ecl.html
new file mode 100644
index 0000000..0220d62
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta_CI.ecl.html
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.ExtractBeta_CI
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta_pval.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta_pval.ecl.html
new file mode 100644
index 0000000..3d54e37
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractBeta_pval.ecl.html
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.ExtractBeta_pval
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractReport.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractReport.ecl.html
new file mode 100644
index 0000000..f5b849d
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/ExtractReport.ecl.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.ExtractReport
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel.ecl.html
new file mode 100644
index 0000000..3b056e5
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel.ecl.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.IRLS.GetModel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ GetModel
+
+
+
+
+
+
+
+
+ DATASET(Layout_Model)
+ GetModel
+ (DATASET(NumericField) independents, DATASET(DiscreteField) dependents, UNSIGNED max_iter=200, REAL8 epsilon=Constants.default_epsilon, REAL8 ridge=Constants.default_ridge)
+
+
+
+
+ Generate logistic regression model from training data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generate logistic regression model from training data. The size of the inputs is used to determin which work items are processed with purely local operations (the data is moved once as necessary) or with global operations supporting a work item to use multiple nodes.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ dependents
+ TABLE ( logisticregression.irls.discretefield ) -- the dependent values.
+
+
+ ridge
+ REAL8 -- a value to pupulate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+
+
+ epsilon
+ REAL8 -- the minimum change in the Beta value estimate to continue
+
+
+ independents
+ TABLE ( logisticregression.irls.numericfield ) -- the independent values
+
+
+ max_iter
+ UNSIGNED8 -- maximum number of iterations to try
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value } )
+ coefficient matrix plus model building stats
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel_global.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel_global.ecl.html
new file mode 100644
index 0000000..bd0f458
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel_global.ecl.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.IRLS.GetModel_global
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ GetModel_global
+
+
+
+
+
+
+
+
+ DATASET(Layout_Model)
+ GetModel_global
+ (DATASET(NumericField) independents, DATASET(DiscreteField) dependents, UNSIGNED max_iter=200, REAL8 epsilon=Constants.default_epsilon, REAL8 ridge=Constants.default_ridge)
+
+
+
+
+ Internal function to determine values for the model coefficients and selected statistics from building the model
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Internal function to determine values for the model coefficients and selected statistics from building the model.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ dependents
+ TABLE ( logisticregression.irls.discretefield ) -- the dependent values
+
+
+ ridge
+ REAL8 -- a value to pupulate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+
+
+ epsilon
+ REAL8 -- the minimum change in the Beta value estimate to continue
+
+
+ independents
+ TABLE ( logisticregression.irls.numericfield ) -- the independent values
+
+
+ max_iter
+ UNSIGNED8 -- maximum number of iterations to try
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value } )
+ coefficient matrix plus model building statistics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel_local.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel_local.ecl.html
new file mode 100644
index 0000000..5fc1fc3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/GetModel_local.ecl.html
@@ -0,0 +1,201 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.IRLS.GetModel_local
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ GetModel_local
+
+
+
+
+
+
+
+
+ DATASET(Layout_Model)
+ GetModel_local
+ (DATASET(NumericField) independents, DATASET(DiscreteField) dependents, UNSIGNED2 max_iter=200, REAL8 epsilon=Constants.default_epsilon, REAL8 ridge=Constants.default_ridge)
+
+
+
+
+ Internal function to determine values for the model co-efficients and selected stats from building the model
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Internal function to determine values for the model co-efficients and selected stats from building the model.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ dependents
+ TABLE ( logisticregression.irls.discretefield ) -- the dependent values.
+
+
+ ridge
+ REAL8 -- a value to populate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+
+
+ epsilon
+ REAL8 -- the minimum change in the Beta value estimate to continue
+
+
+ independents
+ TABLE ( logisticregression.irls.numericfield ) -- the independent values
+
+
+ max_iter
+ UNSIGNED2 -- maximum number of iterations to try
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value } )
+ coefficient matrix plus model building stats
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/pkg.toc.html
new file mode 100644
index 0000000..0065266
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/IRLS/pkg.toc.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+ IRLS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetModel.ecl
+ Generate logistic regression model from training data
+
+
+
+
+
+
+
+
+ GetModel_global.ecl
+ Internal function to determine values for the model coefficients and selected statistics from building the model
+
+
+
+
+
+
+
+
+ GetModel_local.ecl
+ Internal function to determine values for the model co-efficients and selected stats from building the model
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/LogitPredict.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/LogitPredict.ecl.html
new file mode 100644
index 0000000..3a9cdc2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/LogitPredict.ecl.html
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.LogitPredict
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ LogitPredict
+
+
+
+
+
+
+
+
+ DATASET(Classify_Result)
+ LogitPredict
+ (DATASET(Model_Coef) coef, DATASET(NumericField) independents)
+
+
+
+
+ Predict the category values with the logit function and the the supplied beta coefficients
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Predict the category values with the logit function and the the supplied beta coefficients.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ coef
+ TABLE ( logisticregression.model_coef ) -- the model beta coefficients
+
+
+ independents
+ TABLE ( logisticregression.numericfield ) -- the observations
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , INTEGER4 value , REAL8 conf } )
+ the predicted category values and a confidence score
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/LogitScore.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/LogitScore.ecl.html
new file mode 100644
index 0000000..0dcd752
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/LogitScore.ecl.html
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.LogitScore
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ LogitScore
+
+
+
+
+
+
+
+
+ DATASET(Raw_Prediction)
+ LogitScore
+ (DATASET(Model_Coef) coef, DATASET(NumericField) independents)
+
+
+
+
+ Calculate the score using the logit function and the the supplied beta coefficients
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Calculate the score using the logit function and the the supplied beta coefficients.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ coef
+ TABLE ( logisticregression.model_coef ) -- the model beta coefficients
+
+
+ independents
+ TABLE ( logisticregression.numericfield ) -- the observations
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 raw } )
+ the raw prediction value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Model_Deviance.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Model_Deviance.ecl.html
new file mode 100644
index 0000000..8148ee7
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Model_Deviance.ecl.html
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Model_Deviance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Model_Deviance
+
+
+
+
+
+
+
+
+ DATASET(Types.Deviance_Record)
+ Model_Deviance
+ (DATASET(Types.Observation_Deviance) od, DATASET(Types.Model_Coef) mod)
+
+
+
+
+ Model Deviance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ od
+ TABLE ( logisticregression.types.observation_deviance ) -- observation deviance record
+
+
+ mod
+ TABLE ( logisticregression.types.model_coef ) -- model co-efficients
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 df , REAL8 deviance , REAL8 AIC } )
+ model deviance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Null_Deviance.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Null_Deviance.ecl.html
new file mode 100644
index 0000000..6b2a2e6
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Null_Deviance.ecl.html
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Null_Deviance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Null_Deviance
+
+
+
+
+
+
+
+
+ DATASET(Types.Deviance_Record)
+ Null_Deviance
+ (DATASET(Types.Observation_Deviance) od)
+
+
+
+
+ Deviance for the null model, that is, a model with only an intercept
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deviance for the null model, that is, a model with only an intercept.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ od
+ TABLE ( logisticregression.types.observation_deviance ) -- Observation Deviance record set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 df , REAL8 deviance , REAL8 AIC } )
+ a data set of the null model deviances for each work item and classifier.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Tests/Check_Dist.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Tests/Check_Dist.ecl.html
new file mode 100644
index 0000000..fac2dc6
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Tests/Check_Dist.ecl.html
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Tests.Check_Dist
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Tests/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Tests/pkg.toc.html
new file mode 100644
index 0000000..cc3a24f
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Tests/pkg.toc.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+ Tests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Types.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Types.ecl.html
new file mode 100644
index 0000000..952d8e3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/Types.ecl.html
@@ -0,0 +1,1691 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.Types
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/dimm.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/dimm.ecl.html
new file mode 100644
index 0000000..2a5532f
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/dimm.ecl.html
@@ -0,0 +1,277 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.dimm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ dimm
+
+
+
+
+
+
+
+
+ Types.matrix_t
+ dimm
+ (BOOLEAN transposeA, BOOLEAN transposeB, BOOLEAN diagonalA, BOOLEAN diagonalB, Types.dimension_t m, Types.dimension_t n, Types.dimension_t k, Types.value_t alpha, Types.matrix_t A, Types.matrix_t B, Types.value_t beta=0.0, Types.matrix_t C=[])
+
+
+
+
+ Matrix multiply when either A or B is a diagonal and is passed as a vector
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Matrix multiply when either A or B is a diagonal and is passed as a vector. alpha*op(A) op(B) + beta*C where op() is transpose
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ diagonalB
+ BOOLEAN -- true when B is the diagonal matrix
+
+
+ m
+ UNSIGNED4 -- number of rows in product
+
+
+ alpha
+ REAL8 -- scalar used on A
+
+
+ k
+ UNSIGNED4 -- number of columns/rows for the multiplier/multiplicand
+
+
+ C
+ SET ( REAL8 ) -- matrix C or empty
+
+
+ diagonalA
+ BOOLEAN -- true when A is the diagonal matrix
+
+
+ B
+ SET ( REAL8 ) -- matrix B
+
+
+ n
+ UNSIGNED4 -- number of columns in product
+
+
+ beta
+ REAL8 -- scalar for matrix C
+
+
+ A
+ SET ( REAL8 ) -- matrix A
+
+
+ transposeA
+ BOOLEAN -- true when transpose of A is used
+
+
+ transposeB
+ BOOLEAN -- true when transpose of B is used
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ SET ( REAL8 )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/performance/RunBinomial.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/performance/RunBinomial.ecl.html
new file mode 100644
index 0000000..9b597fd
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/performance/RunBinomial.ecl.html
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.performance.RunBinomial
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/performance/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/performance/pkg.toc.html
new file mode 100644
index 0000000..e183c2d
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/performance/pkg.toc.html
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+ performance
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/pkg.toc.html
new file mode 100644
index 0000000..d94ff8e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/pkg.toc.html
@@ -0,0 +1,450 @@
+
+
+
+
+
+
+
+
+ LogisticRegression
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+ LogisticRegression
+
+
+
+
+ Version
+
+ 1.0.0
+
+
+
+
+ Description
+
+ Logistic Regression implementation
+
+
+
+
+ License
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Copyright
+
+ Copyright (C) 2017 HPCC Systems
+
+
+
+
+ Authors
+
+ HPCCSystems
+
+
+
+
+ DependsOn
+
+ ML_Core, PBblas
+
+
+
+
+ Platform
+
+ 6.2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/BinomialRegression.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/BinomialRegression.ecl.html
new file mode 100644
index 0000000..166f4eb
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/BinomialRegression.ecl.html
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.validation.BinomialRegression
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/IrisDS.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/IrisDS.ecl.html
new file mode 100644
index 0000000..0b2ce3e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/IrisDS.ecl.html
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.validation.IrisDS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ATTRIBUTE
+
+
+ irisDS
+
+
+
+
+
+
+
+
+
+ irisDS
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( logisticregression.validation.dsrecord )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/discrete_GermanDS.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/discrete_GermanDS.ecl.html
new file mode 100644
index 0000000..4ded808
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/discrete_GermanDS.ecl.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.validation.discrete_GermanDS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/pkg.toc.html
new file mode 100644
index 0000000..4c8d3d1
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/pkg.toc.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+ validation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/unit_test_dimm.ecl.html b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/unit_test_dimm.ecl.html
new file mode 100644
index 0000000..5c80a6f
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/LogisticRegression/validation/unit_test_dimm.ecl.html
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+ LogisticRegression.validation.unit_test_dimm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/AppendID.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/AppendID.ecl.html
new file mode 100644
index 0000000..bbcaa9a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/AppendID.ecl.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+ ML_Core.AppendID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACRO
+
+
+ AppendID
+
+
+
+
+
+
+
+
+
+ AppendID
+ (dIn,idfield,dOut)
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ din
+ INTEGER8 -- No Doc
+
+
+ idfield
+ INTEGER8 -- No Doc
+
+
+ dout
+ INTEGER8 -- No Doc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/AppendSeqID.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/AppendSeqID.ecl.html
new file mode 100644
index 0000000..7f8c3c2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/AppendSeqID.ecl.html
@@ -0,0 +1,210 @@
+
+
+
+
+
+
+
+
+ ML_Core.AppendSeqID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACRO
+
+
+ AppendSeqID
+
+
+
+
+
+
+
+
+
+ AppendSeqID
+ (dIn,idfield,dOut)
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ din
+ INTEGER8 -- No Doc
+
+
+ idfield
+ INTEGER8 -- No Doc
+
+
+ dout
+ INTEGER8 -- No Doc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Config.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Config.ecl.html
new file mode 100644
index 0000000..ba289fe
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Config.ecl.html
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+ ML_Core.Config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Constants.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Constants.ecl.html
new file mode 100644
index 0000000..e09f0bb
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Constants.ecl.html
@@ -0,0 +1,308 @@
+
+
+
+
+
+
+
+
+ ML_Core.Constants
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/FieldAggregates.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/FieldAggregates.ecl.html
new file mode 100644
index 0000000..fd8b512
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/FieldAggregates.ecl.html
@@ -0,0 +1,1045 @@
+
+
+
+
+
+
+
+
+ ML_Core.FieldAggregates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ FieldAggregates
+
+
+
+
+
+
+
+
+
+ FieldAggregates
+ (DATASET(Types.NumericField) d)
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ d
+ TABLE ( ml_core.types.numericfield ) -- No Doc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/FromField.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/FromField.ecl.html
new file mode 100644
index 0000000..55a01a9
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/FromField.ecl.html
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+
+ ML_Core.FromField
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACRO
+
+
+ FromField
+
+
+
+
+
+
+
+
+
+ FromField
+ (dIn,lOut,dOut,dMap='')
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ dmap
+ INTEGER8 -- No Doc
+
+
+ din
+ INTEGER8 -- No Doc
+
+
+ dout
+ INTEGER8 -- No Doc
+
+
+ lout
+ INTEGER8 -- No Doc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Generate.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Generate.ecl.html
new file mode 100644
index 0000000..31a2799
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Generate.ecl.html
@@ -0,0 +1,423 @@
+
+
+
+
+
+
+
+
+ ML_Core.Generate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/IClassify.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/IClassify.ecl.html
new file mode 100644
index 0000000..24cbae9
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/IClassify.ecl.html
@@ -0,0 +1,417 @@
+
+
+
+
+
+
+
+
+ ML_Core.Interfaces.IClassify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ IClassify
+
+
+
+
+
+
+
+
+
+ IClassify
+
+
+
+
+
+ Interface definition for Classification
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface definition for Classification. Actual implementation modules will probably take parameters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/IRegression.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/IRegression.ecl.html
new file mode 100644
index 0000000..55b0c17
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/IRegression.ecl.html
@@ -0,0 +1,320 @@
+
+
+
+
+
+
+
+
+ ML_Core.Interfaces.IRegression
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ IRegression
+
+
+
+
+
+
+
+
+
+ IRegression
+ (DATASET(NumericField) X=empty_data, DATASET(NumericField) Y=empty_data)
+
+
+
+
+ Interface Definition for Regression Modules Regression learns a function that maps a set of input data to one or more output variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface Definition for Regression Modules Regression learns a function that maps a set of input data to one or more output variables. The resulting learned function is known as the model. That model can then be used repetitively to predict (i.e. estimate) the output value(s) based on new input data.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ Y
+ TABLE ( ml_core.interfaces.numericfield ) -- The dependent variable(s) in DATASET(NumericField) format. Each statistical unit (e.g. record) is identified by 'id', and each feature is identified by field number (i.e. 'number').
+
+
+ X
+ TABLE ( ml_core.interfaces.numericfield ) -- The independent data in DATASET(NumericField) format. Each statistical unit (e.g. record) is identified by 'id', and each feature is identified by field number (i.e. 'number').
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/pkg.toc.html
new file mode 100644
index 0000000..c357875
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Interfaces/pkg.toc.html
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+ Interfaces
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IClassify.ecl
+ Interface definition for Classification
+
+
+
+
+
+
+
+
+ IRegression.ecl
+ Interface Definition for Regression Modules Regression learns a function that maps a set of input data to one or more output variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Beta.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Beta.ecl.html
new file mode 100644
index 0000000..42d4106
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Beta.ecl.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.Beta
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Beta
+
+
+
+
+
+
+
+
+
+ Beta
+ (REAL8 x, REAL8 y)
+
+
+
+
+ Return the beta value of two positive real numbers, x and y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return the beta value of two positive real numbers, x and y
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ y
+ REAL8 -- the value of the second number
+
+
+ x
+ REAL8 -- the value of the first number
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ the beta value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Distributions.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Distributions.ecl.html
new file mode 100644
index 0000000..6b0373a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Distributions.ecl.html
@@ -0,0 +1,765 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.Distributions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/DoubleFac.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/DoubleFac.ecl.html
new file mode 100644
index 0000000..00f3892
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/DoubleFac.ecl.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.DoubleFac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ DoubleFac
+
+
+
+
+
+
+
+
+ REAL8
+ DoubleFac
+ (INTEGER2 i)
+
+
+
+
+ The 'double' factorial is defined for ODD n and is the product of all the odd numbers up to and including that number
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The 'double' factorial is defined for ODD n and is the product of all the odd numbers up to and including that number. We are extending the meaning to even numbers to mean the product of the even numbers up to and including that number. Thus DoubleFac(8) = 8*6*4*2 We also defend against i < 2 (returning 1.0)
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ i
+ INTEGER2 -- the value used in the calculation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ the factorial of the sequence, declining by 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Fac.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Fac.ecl.html
new file mode 100644
index 0000000..9806d61
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Fac.ecl.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.Fac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ Fac
+
+
+
+
+
+
+
+
+ REAL8
+ Fac
+ (UNSIGNED2 i)
+
+
+
+
+ Factorial function
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Factorial function
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ i
+ UNSIGNED2 -- the value used, (i)(i-1)(i-2)...(2)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ the factorial i!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/NCK.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/NCK.ecl.html
new file mode 100644
index 0000000..364f44d
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/NCK.ecl.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.NCK
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ NCK
+
+
+
+
+
+
+
+
+ REAL8
+ NCK
+ (INTEGER2 N, INTEGER2 K)
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ k
+ INTEGER2 -- No Doc
+
+
+ n
+ INTEGER2 -- No Doc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Poly.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Poly.ecl.html
new file mode 100644
index 0000000..3aa29dc
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/Poly.ecl.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.Poly
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ Poly
+
+
+
+
+
+
+
+
+ REAL8
+ Poly
+ (REAL8 x, SET OF REAL8 Coeffs)
+
+
+
+
+ Evaluate a polynomial from a set of co-effs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Evaluate a polynomial from a set of co-effs. Co-effs 1 is assumed to be the HIGH order of the equation. Thus for ax^2+bx+c - the set would need to be Coef := [a,b,c];
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ Coeffs
+ SET ( REAL8 ) -- a set of coefficients forthe polynomial. The ALL set is considered to be all zero values
+
+
+ x
+ REAL8 -- the value of x in the polynomial
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ value of the polynomial at x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/StirlingFormula.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/StirlingFormula.ecl.html
new file mode 100644
index 0000000..d870a35
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/StirlingFormula.ecl.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.StirlingFormula
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/gamma.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/gamma.ecl.html
new file mode 100644
index 0000000..c6ccd9c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/gamma.ecl.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.gamma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ gamma
+
+
+
+
+
+
+
+
+ REAL8
+ gamma
+ (REAL8 x)
+
+
+
+
+ Return the value of gamma function of real number x A wrapper for the standard C tgamma function
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return the value of gamma function of real number x A wrapper for the standard C tgamma function.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ x
+ REAL8 -- the input x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ the value of GAMMA evaluated at x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/log_gamma.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/log_gamma.ecl.html
new file mode 100644
index 0000000..1d9fa39
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/log_gamma.ecl.html
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.log_gamma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ log_gamma
+
+
+
+
+
+
+
+
+ REAL8
+ log_gamma
+ (REAL8 x)
+
+
+
+
+ Return the value of the log gamma function of the absolute value of X
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return the value of the log gamma function of the absolute value of X. A wrapper for the standard C lgamma function. Avoids the race condition found on some platforms by taking the absolute value of the of the input argument.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ x
+ REAL8 -- the input x
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ the value of the log of the GAMMA evaluated at ABS(x)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/lowerGamma.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/lowerGamma.ecl.html
new file mode 100644
index 0000000..b687cc9
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/lowerGamma.ecl.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.lowerGamma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ lowerGamma
+
+
+
+
+
+
+
+
+ REAL8
+ lowerGamma
+ (REAL8 x, REAL8 y)
+
+
+
+
+ Return the lower incomplete gamma value of two real numbers,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return the lower incomplete gamma value of two real numbers, x and y
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ y
+ REAL8 -- the value of the second number
+
+
+ x
+ REAL8 -- the value of the first number
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ the lower incomplete gamma value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/pkg.toc.html
new file mode 100644
index 0000000..00f5907
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/pkg.toc.html
@@ -0,0 +1,232 @@
+
+
+
+
+
+
+
+
+ Math
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Beta.ecl
+ Return the beta value of two positive real numbers, x and y
+
+
+
+
+
+
+
+
+ Distributions.ecl
+
+
+
+
+
+
+
+
+
+ DoubleFac.ecl
+ The 'double' factorial is defined for ODD n and is the product of all the odd numbers up to and including that number
+
+
+
+
+
+
+
+
+ Fac.ecl
+ Factorial function
+
+
+
+
+
+
+
+
+ gamma.ecl
+ Return the value of gamma function of real number x A wrapper for the standard C tgamma function
+
+
+
+
+
+
+
+
+ log_gamma.ecl
+ Return the value of the log gamma function of the absolute value of X
+
+
+
+
+
+
+
+
+ lowerGamma.ecl
+ Return the lower incomplete gamma value of two real numbers,
+
+
+
+
+
+
+
+
+ NCK.ecl
+
+
+
+
+
+
+
+
+
+ Poly.ecl
+ Evaluate a polynomial from a set of co-effs
+
+
+
+
+
+
+
+
+ StirlingFormula.ecl
+ Stirling's formula
+
+
+
+
+
+
+
+
+ upperGamma.ecl
+ Return the upper incomplete gamma value of two real numbers, x and y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/upperGamma.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/upperGamma.ecl.html
new file mode 100644
index 0000000..5169afb
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Math/upperGamma.ecl.html
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+ ML_Core.Math.upperGamma
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ EMBED
+
+
+ upperGamma
+
+
+
+
+
+
+
+
+ REAL8
+ upperGamma
+ (REAL8 x, REAL8 y)
+
+
+
+
+ Return the upper incomplete gamma value of two real numbers, x and y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Return the upper incomplete gamma value of two real numbers, x and y.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ y
+ REAL8 -- the value of the second number
+
+
+ x
+ REAL8 -- the value of the first number
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ the upper incomplete gamma value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Check_Dist.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Check_Dist.ecl.html
new file mode 100644
index 0000000..4c238e0
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Check_Dist.ecl.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.Check_Dist
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Validate_Betas.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Validate_Betas.ecl.html
new file mode 100644
index 0000000..8f7a41d
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Validate_Betas.ecl.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.Validate_Betas
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Validate_Gammas.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Validate_Gammas.ecl.html
new file mode 100644
index 0000000..341e535
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/Validate_Gammas.ecl.html
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.Validate_Gammas
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/field_aggregates.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/field_aggregates.ecl.html
new file mode 100644
index 0000000..ce5a3ee
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/field_aggregates.ecl.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.field_aggregates
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/generate.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/generate.ecl.html
new file mode 100644
index 0000000..64854e1
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/generate.ecl.html
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.generate
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/pkg.toc.html
new file mode 100644
index 0000000..1396ca9
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/pkg.toc.html
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+ Tests
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/test_appends.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/test_appends.ecl.html
new file mode 100644
index 0000000..ac3a638
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/test_appends.ecl.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.test_appends
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/test_discrete.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/test_discrete.ecl.html
new file mode 100644
index 0000000..a8d123b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/test_discrete.ecl.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.test_discrete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/to_from.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/to_from.ecl.html
new file mode 100644
index 0000000..5648bd0
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Tests/to_from.ecl.html
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+ ML_Core.Tests.to_from
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/ToField.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/ToField.ecl.html
new file mode 100644
index 0000000..45a7d40
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/ToField.ecl.html
@@ -0,0 +1,222 @@
+
+
+
+
+
+
+
+
+ ML_Core.ToField
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACRO
+
+
+ ToField
+
+
+
+
+
+
+
+
+
+ ToField
+ (dIn,dOut,idfield='', wifield='', wivalue='',datafields='')
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Documentation Found
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ datafields
+ INTEGER8 -- No Doc
+
+
+ wivalue
+ INTEGER8 -- No Doc
+
+
+ wifield
+ INTEGER8 -- No Doc
+
+
+ din
+ INTEGER8 -- No Doc
+
+
+ idfield
+ INTEGER8 -- No Doc
+
+
+ dout
+ INTEGER8 -- No Doc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Types.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Types.ecl.html
new file mode 100644
index 0000000..7f39499
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Types.ecl.html
@@ -0,0 +1,1627 @@
+
+
+
+
+
+
+
+
+ ML_Core.Types
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/Fat.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/Fat.ecl.html
new file mode 100644
index 0000000..364297a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/Fat.ecl.html
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+ ML_Core.Utils.Fat
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Fat
+
+
+
+
+
+
+
+
+ DATASET(Types.NumericField)
+ Fat
+ (DATASET(Types.NumericField) d0, Types.t_FieldReal v=0)
+
+
+
+
+ Will take a potentially sparse file d and fill in the missing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Will take a potentially sparse file d and fill in the missing with value v for Numeric Field datasets
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ v
+ REAL8 -- The value to assign missing records
+
+
+ d0
+ TABLE ( ml_core.types.numericfield ) -- They myriad format Numeric Field dataset to be filled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value } )
+ A full Numeric Field dataset with every field populated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/FatD.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/FatD.ecl.html
new file mode 100644
index 0000000..318bcd2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/FatD.ecl.html
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+ ML_Core.Utils.FatD
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ FatD
+
+
+
+
+
+
+
+
+ DATASET(Types.DiscreteField)
+ FatD
+ (DATASET(Types.DiscreteField) d0, Types.t_Discrete v=0)
+
+
+
+
+ Will take a potentially sparse file d and fill in the missing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Will take a potentially sparse file d and fill in the missing with value v for Discrete Field datasets
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ v
+ INTEGER4 -- The value to assign missing records
+
+
+ d0
+ TABLE ( ml_core.types.discretefield ) -- They myriad format Discrete Field dataset to be filled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , INTEGER4 value } )
+ A full Discrete Field dataset with every field populated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/Gini.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/Gini.ecl.html
new file mode 100644
index 0000000..eb90bbb
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/Gini.ecl.html
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+ ML_Core.Utils.Gini
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACRO
+
+
+ Gini
+
+
+
+
+
+
+
+
+
+ Gini
+ (infile, pivot, target, wi_name='wi')
+
+
+
+
+ Creates a file of pivot/target pairs with a Gini impurity value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Creates a file of pivot/target pairs with a Gini impurity value.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ target
+ INTEGER8 -- the name of the field used as the target
+
+
+ wi_name
+ INTEGER8 -- the name of the work item field, default is "wi" return A table by Work Item and Pivot value giving count and Gini impurity value
+
+
+ pivot
+ INTEGER8 -- the name of the pivot field
+
+
+ infile
+ INTEGER8 -- the input file, any type with a work item field
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/SequenceInField.ecl.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/SequenceInField.ecl.html
new file mode 100644
index 0000000..022ac93
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/SequenceInField.ecl.html
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+
+
+ ML_Core.Utils.SequenceInField
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MACRO
+
+
+ SequenceInField
+
+
+
+
+
+
+
+
+
+ SequenceInField
+ (infile,infield,seq,wi_name='wi')
+
+
+
+
+ Given a file which is sorted by the work item identifier and INFIELD (and possibly other values), add sequence numbers within the range of each infield
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Given a file which is sorted by the work item identifier and INFIELD (and possibly other values), add sequence numbers within the range of each infield. Slighly elaborate code is to avoid having to partition the data to one value of infield per node and to work with very large numbers of records where a global count project would be inappropriate. This is useful for assigning rank positions with the groupings.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ wi_name
+ INTEGER8 -- work item field name, default is wi
+
+
+ infield
+ INTEGER8 -- field name of grouping field
+
+
+ seq
+ INTEGER8 -- name of the field to receive the sequence number
+
+
+ infile
+ INTEGER8 -- the input file, any type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ BOOLEAN
+ a file of the same type with sequence numbers applied
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/pkg.toc.html
new file mode 100644
index 0000000..adaf741
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/Utils/pkg.toc.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+ Utils
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fat.ecl
+ Will take a potentially sparse file d and fill in the missing
+
+
+
+
+
+
+
+
+ FatD.ecl
+ Will take a potentially sparse file d and fill in the missing
+
+
+
+
+
+
+
+
+ Gini.ecl
+ Creates a file of pivot/target pairs with a Gini impurity value
+
+
+
+
+
+
+
+
+ SequenceInField.ecl
+ Given a file which is sorted by the work item identifier and INFIELD (and possibly other values), add sequence numbers within the range of each infield
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/ML_Core/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/ML_Core/pkg.toc.html
new file mode 100644
index 0000000..5231331
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/ML_Core/pkg.toc.html
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+
+ ML_Core
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+ ML_Core
+
+
+
+
+ Version
+
+ 3.1.0
+
+
+
+
+ Description
+
+ Common definitions for Machine Learning
+
+
+
+
+ License
+
+ See LICENSE.TXT
+
+
+
+
+ Copyright
+
+ Copyright (C) 2017 HPCC Systems
+
+
+
+
+ Authors
+
+ HPCCSystems
+
+
+
+
+ Platform
+
+ 6.2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/Apply2Elements.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/Apply2Elements.ecl.html
new file mode 100644
index 0000000..a7af806
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/Apply2Elements.ecl.html
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+ PBblas.Apply2Elements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Apply2Elements
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ Apply2Elements
+ (DATASET(Layout_Cell) X, IElementFunc f)
+
+
+
+
+ Apply a function to each element of the matrix Use PBblas.IElementFunc as the prototype function
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apply a function to each element of the matrix Use PBblas.IElementFunc as the prototype function. Input and ouput may be a single matrix, or myriad matrixes with different work item ids.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ X
+ TABLE ( pbblas.layout_cell ) -- A matrix (or multiple matrices) in Layout_Cell form
+
+
+ f
+ FUNCTION [ REAL8 , UNSIGNED4 , UNSIGNED4 ] ( REAL8 ) -- A function based on the IElementFunc prototype
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ A matrix (or multiple matrices) in Layout_Cell form
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/IElementFunc
+
+
+ PBblas/Types.Layout_Cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/Constants.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/Constants.ecl.html
new file mode 100644
index 0000000..8499db8
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/Constants.ecl.html
@@ -0,0 +1,1314 @@
+
+
+
+
+
+
+
+
+ PBblas.Constants
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/Converted.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/Converted.ecl.html
new file mode 100644
index 0000000..66b70aa
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/Converted.ecl.html
@@ -0,0 +1,624 @@
+
+
+
+
+
+
+
+
+ PBblas.Converted
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ Converted
+
+
+
+
+
+
+
+
+
+ Converted
+
+
+
+
+
+ Module to convert between ML_Core/Types Field layouts (i.e
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Module to convert between ML_Core/Types Field layouts (i.e. NumericField and DiscreteField) and PBblas matrix layout (i.e. Layout_Cell)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/ExtractTri.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/ExtractTri.ecl.html
new file mode 100644
index 0000000..ee22063
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/ExtractTri.ecl.html
@@ -0,0 +1,254 @@
+
+
+
+
+
+
+
+
+ PBblas.ExtractTri
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/HadamardProduct.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/HadamardProduct.ecl.html
new file mode 100644
index 0000000..6eec408
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/HadamardProduct.ecl.html
@@ -0,0 +1,252 @@
+
+
+
+
+
+
+
+
+ PBblas.HadamardProduct
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ HadamardProduct
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ HadamardProduct
+ (DATASET(Layout_Cell) X, DATASET(Layout_Cell) Y)
+
+
+
+
+ Element-wise multiplication of X * Y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Element-wise multiplication of X * Y. Supports the "myriad" style interface -- X and Y may contain multiple separate matrixes. Each X will be multiplied by the Y with the same work-item id. Note: This performs element-wise multiplication. For dot-product matrix multiplication, use PBblas.gemm.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ Y
+ TABLE ( pbblas.layout_cell ) -- A matrix (or multiple matrices) in Layout_Cell form
+
+
+ X
+ TABLE ( pbblas.layout_cell ) -- A matrix (or multiple matrices) in Layout_Cell form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ A matrix (or multiple matrices) in Layout_Cell form
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Types.Layout_Cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/IElementFunc.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/IElementFunc.ecl.html
new file mode 100644
index 0000000..a8dd0a8
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/IElementFunc.ecl.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+
+ PBblas.IElementFunc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ IElementFunc
+
+
+
+
+
+
+
+
+ value_t
+ IElementFunc
+ (value_t v, dimension_t r, dimension_t c)
+
+
+
+
+ Function prototype for a function to apply to each element of the
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Function prototype for a function to apply to each element of the distributed matrix Base your function on this prototype:
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ v
+ REAL8 -- Input value
+
+
+ c
+ UNSIGNED4 -- Column number (1 based)
+
+
+ r
+ UNSIGNED4 -- Row number (1 based)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ REAL8
+ Output value
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Apply2Elements
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/MatUtils.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/MatUtils.ecl.html
new file mode 100644
index 0000000..9a6f1dd
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/MatUtils.ecl.html
@@ -0,0 +1,520 @@
+
+
+
+
+
+
+
+
+ PBblas.MatUtils
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ MatUtils
+
+
+
+
+
+
+
+
+
+ MatUtils
+
+
+
+
+
+ Provides various utility attributes for manipulating cell-based matrixes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides various utility attributes for manipulating cell-based matrixes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ Std/PBblas/Types.Layout_Cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/Types.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/Types.ecl.html
new file mode 100644
index 0000000..121b809
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/Types.ecl.html
@@ -0,0 +1,1003 @@
+
+
+
+
+
+
+
+
+ PBblas.Types
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MODULE
+
+
+ Types
+
+
+
+
+
+
+
+
+
+ Types
+
+
+
+
+
+ Types for the Parallel Block Basic Linear Algebra Sub-programs support WARNING: attributes marked with WARNING can not be changed without making corresponding changes to the C++ attributes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Types for the Parallel Block Basic Linear Algebra Sub-programs support WARNING: attributes marked with WARNING can not be changed without making corresponding changes to the C++ attributes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/Vector2Diag.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/Vector2Diag.ecl.html
new file mode 100644
index 0000000..4b36823
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/Vector2Diag.ecl.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+ PBblas.Vector2Diag
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ Vector2Diag
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ Vector2Diag
+ (DATASET(Layout_Cell) X)
+
+
+
+
+ Convert a vector into a diagonal matrix
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Convert a vector into a diagonal matrix. The typical notation is D = diag(V). The input X must be a 1 x N column vector or an N x 1 row vector. The resulting matrix, in either case will be N x N, with zero everywhere except the diagonal.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ X
+ TABLE ( pbblas.layout_cell ) -- A row or column vector (i.e. N x 1 or 1 x N) in Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ An N x N matrix in Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Types.Layout_cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/asum.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/asum.ecl.html
new file mode 100644
index 0000000..388f261
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/asum.ecl.html
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+ PBblas.asum
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ asum
+
+
+
+
+
+
+
+
+ DATASET(Layout_Norm)
+ asum
+ (DATASET(Layout_Cell) X)
+
+
+
+
+ Absolute sum -- the "Entrywise" 1-norm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Absolute sum -- the "Entrywise" 1-norm Compute SUM(ABS(X))
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ X
+ TABLE ( pbblas.layout_cell ) -- Matrix or set of matrices in Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , REAL8 v } )
+ DATASET(Layout_Norm) with one record per work item
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Types.Layout_Cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/axpy.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/axpy.ecl.html
new file mode 100644
index 0000000..25c31ac
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/axpy.ecl.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+ PBblas.axpy
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ axpy
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ axpy
+ (value_t alpha, DATASET(Layout_Cell) X, DATASET(Layout_Cell) Y)
+
+
+
+
+ Implements alpha*X + Y
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements alpha*X + Y X and Y must have same shape
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ Y
+ TABLE ( pbblas.layout_cell ) -- Y matrix in DATASET(Layout_Call) form
+
+
+ alpha
+ REAL8 -- Scalar multiplier for the X matrix
+
+
+ X
+ TABLE ( pbblas.layout_cell ) -- X matrix in DATASET(Layout_Cell) form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ Matrix in DATASET(Layout_Cell) form
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Types.layout_cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/gemm.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/gemm.ecl.html
new file mode 100644
index 0000000..c60690a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/gemm.ecl.html
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+ PBblas.gemm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ gemm
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ gemm
+ (BOOLEAN transposeA, BOOLEAN transposeB, value_t alpha, DATASET(Layout_Cell) A_in, DATASET(Layout_Cell) B_in, DATASET(Layout_Cell) C_in=emptyC, value_t beta=0.0)
+
+
+
+
+ Extended Parallel Block Matrix Multiplication Module Implements: Result = alpha * op(A)op(B) + beta * C
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Extended Parallel Block Matrix Multiplication Module Implements: Result = alpha * op(A)op(B) + beta * C. op is No Transpose or Transpose. Multiplies two matrixes A and B, with an optional pre-multiply transpose for each Optionally scales the product by the scalar "alpha". Then adds an optional C matrix to the product after scaling C by the scalar "beta". A, B, and C are specified as DATASET(Layout_Cell), as is the Resulting matrix. Layout_Cell describes a sparse matrix stored as a list of x, y, and value. This interface also provides a "Myriad" capability allowing multiple similar operations to be performed on independent sets of matrixes in parallel. This is done by use of the work-item id (wi_id) in each cell of the matrixes. Cells with the same wi_id are considered part of the same matrix. In the myriad form, each input matrix A, B, and (optionally) C can contain many independent matrixes. The wi_ids are matched up such that each operation involves the A, B, and C with the same wi_id. A and B must therefore contain the same set of wi_ids, while C is optional for any wi_id. The same parameters: alpha, beta, transposeA, and transposeB are used for all work-items. The result will contain cells from all provided work-items. Result has same shape as C if provided. Note that matrixes are not explicitly dimensioned. The shape is determined by the highest value of x and y for each work-item.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ alpha
+ REAL8 -- Scalar multiplier for alpha * A * B
+
+
+ beta
+ REAL8 -- A scalar multiplier for beta * C, scales the C matrix before addition. May be omitted.
+
+
+ A_in
+ TABLE ( pbblas.layout_cell ) -- 'A' matrix (multiplier) in Layout_Cell format
+
+
+ C_in
+ TABLE ( pbblas.layout_cell ) -- Same as above for the 'C' matrix (addend). May be omitted.
+
+
+ B_in
+ TABLE ( pbblas.layout_cell ) -- Same as above for the 'B' matrix (multiplicand)
+
+
+ transposeA
+ BOOLEAN -- Boolean indicating whether matrix A should be transposed before multiplying
+
+
+ transposeB
+ BOOLEAN -- Same as above but for matrix B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ Result matrix in Layout_Cell format.
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Types.Layout_Cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/getrf.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/getrf.ecl.html
new file mode 100644
index 0000000..3d00c03
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/getrf.ecl.html
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+ PBblas.getrf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ getrf
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ getrf
+ (DATASET(Layout_Cell) A)
+
+
+
+
+ LU Factorization Splits a matrix into Lower and Upper triangular factors Produces composite LU matrix for the diagonal blocks
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LU Factorization Splits a matrix into Lower and Upper triangular factors Produces composite LU matrix for the diagonal blocks. Iterates through the matrix a row of blocks and column of blocks at a time. Partition A into M block rows and N block columns. The A11 cell is a single block. A12 is a single row of blocks with N-1 columns. A21 is a single column of blocks with M-1 rows. A22 is a sub-matrix of M-1 x N-1 blocks. | A11 A12 | | L11 0 | | U11 U12 | | A21 A22 | == | L21 L22 | * | 0 U22 | | L11*U11 L11*U12 | == | L21*U11 L21*U12 + L22*U22 | Based upon PB-BLAS: A set of parallel block basic linear algebra subprograms by Choi and Dongarra This module supports the "Myriad" style interface, allowing many independent problems to be worked on at once. The A matrix can contain multiple matrixes to be factored, indicated by different values for work-item id (wi_id). Note: The returned matrix includes both the upper and lower factors. This matrix can be used directly by trsm which will only use the part indicated by trsm's 'triangle' parameter (i.e. upper or lower). To extract the upper or lower triangle explicitly for other purposes, use the ExtractTri function. When passing the Lower matrix to the triangle solver (trsm), set the "Diagonal" parameter to "UnitTri". This is necessary because both triangular matrixes returned from this function are packed into a square matrix with only one diagonal. By convention, The Lower triangle is assumed to be a Unit Triangle (diagonal all ones), so the diagonal contained in the returned matrix is for the Upper factor and must be ignored (i.e. assumed to be all ones) when referencing the Lower triangle.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ A
+ TABLE ( pbblas.layout_cell ) -- The input matrix in Types.Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ Resulting factored matrix in Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ Types.Layout_Cell
+
+
+ ExtractTri
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/pkg.toc.html
new file mode 100644
index 0000000..a10e4e5
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/pkg.toc.html
@@ -0,0 +1,380 @@
+
+
+
+
+
+
+
+
+ PBblas
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+ PBblas
+
+
+
+
+ Version
+
+ 3.0.1
+
+
+
+
+ Description
+
+ Parallel Block Basic Linear Algebra Subsystem
+
+
+
+
+ License
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+
+
+
+ Copyright
+
+ Copyright (C) 2016, 2017 HPCC Systems
+
+
+
+
+ Authors
+
+ HPCCSystems
+
+
+
+
+ DependsOn
+
+ ML_Core
+
+
+
+
+ Platform
+
+ 6.2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apply2Elements.ecl
+ Apply a function to each element of the matrix Use PBblas.IElementFunc as the prototype function
+
+
+
+
+
+
+
+
+ asum.ecl
+ Absolute sum -- the "Entrywise" 1-norm
+
+
+
+
+
+
+
+
+ axpy.ecl
+ Implements alpha*X + Y
+
+
+
+
+
+
+
+
+ Constants.ecl
+
+
+
+
+
+
+
+
+
+ Converted.ecl
+ Module to convert between ML_Core/Types Field layouts (i.e
+
+
+
+
+
+
+
+
+ ExtractTri.ecl
+ Extract the upper or lower triangle from the composite output from getrf (LU Factorization)
+
+
+
+
+
+
+
+
+ gemm.ecl
+ Extended Parallel Block Matrix Multiplication Module Implements: Result = alpha * op(A)op(B) + beta * C
+
+
+
+
+
+
+
+
+ getrf.ecl
+ LU Factorization Splits a matrix into Lower and Upper triangular factors Produces composite LU matrix for the diagonal blocks
+
+
+
+
+
+
+
+
+ HadamardProduct.ecl
+ Element-wise multiplication of X * Y
+
+
+
+
+
+
+
+
+ IElementFunc.ecl
+ Function prototype for a function to apply to each element of the
+
+
+
+
+
+
+
+
+ MatUtils.ecl
+ Provides various utility attributes for manipulating cell-based matrixes
+
+
+
+
+
+
+
+
+ potrf.ecl
+ Implements Cholesky factorization of A = U**T * U if Triangular.Upper requested or A = L * L**T if Triangualr.Lower is requested
+
+
+
+
+
+
+
+
+ scal.ecl
+ Scale a matrix by a constant Result is alpha * X This supports a "myriad" style interface in that X may be a set of independent matrices separated by different work-item ids
+
+
+
+
+
+
+
+
+ tran.ecl
+ Transpose a matrix and sum into base matrix
+
+
+
+
+
+
+
+
+ trsm.ecl
+ Partitioned block parallel triangular matrix solver
+
+
+
+
+
+
+
+
+ Types.ecl
+ Types for the Parallel Block Basic Linear Algebra Sub-programs support WARNING: attributes marked with WARNING can not be changed without making corresponding changes to the C++ attributes
+
+
+
+
+
+
+
+
+ Vector2Diag.ecl
+ Convert a vector into a diagonal matrix
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/potrf.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/potrf.ecl.html
new file mode 100644
index 0000000..d5811f7
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/potrf.ecl.html
@@ -0,0 +1,255 @@
+
+
+
+
+
+
+
+
+ PBblas.potrf
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ potrf
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ potrf
+ (Triangle tri, DATASET(Layout_Cell) A_in)
+
+
+
+
+ Implements Cholesky factorization of A = U**T * U if Triangular.Upper requested or A = L * L**T if Triangualr.Lower is requested
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements Cholesky factorization of A = U**T * U if Triangular.Upper requested or A = L * L**T if Triangualr.Lower is requested. The matrix A must be symmetric positive definite.
| A11 A12 | | L11 0 | | L11**T L21**T | | A21 A22 | == | L21 L22 | * | 0 L22 | | L11*L11**T L11*L21**T | == | L21*L11**T L21*L21**T + L22*L22**T | So, use Cholesky on the first block to get L11. L21 = A21*L11**T**-1 which can be found by dtrsm on each column block A22' is A22 - L21*L21**T
Based upon PB-BLAS: A set of parallel block basic linear algebra subprograms by Choi and Dongarra
This module supports the "Myriad" style interface, allowing many independent problems to be worked on at once. The A matrix can contain multiple matrixes to be factored, indicated by different values for work-item id (wi_id).
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ A_in
+ TABLE ( pbblas.layout_cell ) -- The matrix or matrixes to be factored in Types.Layout_Cell format
+
+
+ tri
+ UNSIGNED1 -- Types.Triangle enumeration indicating whether we are looking for the Upper or the Lower factor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ Triangular matrix in Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ Std.PBblas.Types.Layout_Cell
+
+
+ Std.PBblas.Types.Triangle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/scal.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/scal.ecl.html
new file mode 100644
index 0000000..92a0258
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/scal.ecl.html
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
+
+ PBblas.scal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ scal
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ scal
+ (value_t alpha, DATASET(Layout_Cell) X)
+
+
+
+
+ Scale a matrix by a constant Result is alpha * X This supports a "myriad" style interface in that X may be a set of independent matrices separated by different work-item ids
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Scale a matrix by a constant Result is alpha * X This supports a "myriad" style interface in that X may be a set of independent matrices separated by different work-item ids.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ alpha
+ REAL8 -- A scalar multiplier
+
+
+ X
+ TABLE ( pbblas.layout_cell ) -- The matrix(es) to be scaled in Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ Matrix in Layout_Cell form, of the same shape as X
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Types.Layout_Cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/tran.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/tran.ecl.html
new file mode 100644
index 0000000..4f17d09
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/tran.ecl.html
@@ -0,0 +1,260 @@
+
+
+
+
+
+
+
+
+ PBblas.tran
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ tran
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ tran
+ (value_t alpha, DATASET(Layout_Cell) A, value_t beta=0, DATASET(Layout_Cell) C=empty_c)
+
+
+
+
+ Transpose a matrix and sum into base matrix
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Transpose a matrix and sum into base matrix result <== alpha * A**t + beta * C, A is n by m, C is m by n A**T (A Transpose) and C must have same shape
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ C
+ TABLE ( pbblas.layout_cell ) -- C matrix in DATASET(Layout_Call) form
+
+
+ alpha
+ REAL8 -- Scalar multiplier for the A**T matrix
+
+
+ A
+ TABLE ( pbblas.layout_cell ) -- A matrix in DATASET(Layout_Cell) form
+
+
+ beta
+ REAL8 -- Scalar multiplier for the C matrix
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ Matrix in DATASET(Layout_Cell) form alpha * A**T + beta * C
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ PBblas/Types.layout_cell
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/PBblas/trsm.ecl.html b/testing/eclbundles/ml-bundles-docs/html/PBblas/trsm.ecl.html
new file mode 100644
index 0000000..6d27296
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/PBblas/trsm.ecl.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+ PBblas.trsm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ FUNCTION
+
+
+ trsm
+
+
+
+
+
+
+
+
+ DATASET(Layout_Cell)
+ trsm
+ (Side s, Triangle tri, BOOLEAN transposeA, Diagonal diag, value_t alpha, DATASET(Layout_Cell) A_in, DATASET(Layout_Cell) B_in)
+
+
+
+
+ Partitioned block parallel triangular matrix solver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Partitioned block parallel triangular matrix solver. Solves for X using: AX = B or XA = B A is is a square triangular matrix, X and B have the same dimensions. A may be an upper triangular matrix (UX = B or XU = B), or a lower triangular matrix (LX = B or XL = B). Allows optional transposing and scaling of A. Partially based upon an approach discussed by MJ DAYDE, IS DUFF, AP CERFACS. A Parallel Block implementation of Level-3 BLAS for MIMD Vector Processors ACM Tran. Mathematical Software, Vol 20, No 2, June 1994 pp 178-193 and other papers about PB-BLAS by Choi and Dongarra This module supports the "Myriad" style interface, allowing many independent problems to be worked on at once. Corresponding A and B matrixes are related by a common work-item identifier (wi_id) within each cell of the matrix. The returned X matrix will contain cells for the same set of work-items as specified for the A and B matrices.
+
+
+
+
+
+
+
+
+
+
+
+
Parameters
+
+
+
+
+ alpha
+ REAL8 -- Multiplier to scale A
+
+
+ transposeA
+ BOOLEAN -- Boolean indicating whether or not to transpose the A matrix before solving
+
+
+ A_in
+ TABLE ( pbblas.layout_cell ) -- The A matrix in Layout_Cell format
+
+
+ tri
+ UNSIGNED1 -- Types.Triangle enumeration indicating whether we are solving an Upper or Lower triangle.
+
+
+ B_in
+ TABLE ( pbblas.layout_cell ) -- The B matrix in Layout_Cell format
+
+
+ diag
+ UNSIGNED1 -- Types.Diagonal enumeration indicating whether A is a unit matrix or not. This is primarily used after factoring matrixes using getrf (LU factorization). That module produces a factored matrix stored within the same space as the original matrix. Since the diagonal is used by both factors, by convention, the Lower triangle has a unit matrix (diagonal all 1's) while the Upper triangle uses the diagonal cells. Setting this to UnitTri, causes the contents of the diagonal to be ignored, and assumed to be 1. NotUnitTri should be used for most other cases.
+
+
+ s
+ UNSIGNED1 -- Types.Side enumeration indicating whether we are solving AX = B or XA = B
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns
+
+
+
+
+ TABLE ( { UNSIGNED2 wi_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v } )
+ X solution matrix in Layout_Cell format
+
+
+
+
+
+
+
+
+
+
+
+
+
See
+
+
+
+
+ Types.Layout_Cell
+
+
+ Types.Triangle
+
+
+ Types.Side
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/html/pkg.toc.html b/testing/eclbundles/ml-bundles-docs/html/pkg.toc.html
new file mode 100644
index 0000000..eb979f8
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/html/pkg.toc.html
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+ root
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/index.aux b/testing/eclbundles/ml-bundles-docs/tex/index.aux
new file mode 100644
index 0000000..af67055
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/index.aux
@@ -0,0 +1,44 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@ii {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@iii {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@iv {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@v {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@vi {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@vii {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@viii {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@ix {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@x {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@xi {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@xii {\LT@entry
+ {1}{554.825pt}}
+\gdef \LT@xiii {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/index.log b/testing/eclbundles/ml-bundles-docs/tex/index.log
new file mode 100644
index 0000000..213b919
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/index.log
@@ -0,0 +1,917 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**index.tex
+(./index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+) (./index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(./index.out) (./index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+ (./root/pkg.toc.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--18
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 18
+ []
+
+(./root/LinearRegression/pkg.toc.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (/usr/share/texmf/tex/late
+x/lm/ot1lmr.fd)
+(/usr/share/texmf/tex/latex/lm/omllmm.fd)
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd)
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)
+Overfull \hbox (12.79999pt too wide) in alignment at lines 43--48
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 48
+ []
+
+(./root/LinearRegression/OLS.ecl.tex [2
+
+]
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 9.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 9.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 9.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+) [3
+
+] [4] [5] [6] [7] [8] [9] [10]
+[11] [12] [13] [14] [15] [16]pdfTeX warning (ext4): destination with the same i
+dentifier (name{ecldoc:linearregression.ols.distributionbase.densityv}) has bee
+n already used, duplicate ignored
+
+ \relax
+l.1327 ...ression.ols.distributionbase.densityv}{}
+ [17]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.ntile}) has been already used, duplicate ignored
+
+ \relax
+l.1377 ...regression.ols.distributionbase.ntile}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.discrete}) has been already used, duplicate ignored
+
+ \relax
+l.1436 ...ression.ols.distributionbase.discrete}{}
+ [18] [19] [20] [21]pdfTeX wa
+rning (ext4): destination with the same identifier (name{ecldoc:linearregressio
+n.ols.distributionbase.densityv}) has been already used, duplicate ignored
+
+ \relax
+l.1933 ...ression.ols.distributionbase.densityv}{}
+ [22]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.cumulativev}) has been already used, duplicate ignored
+
+ \relax
+l.1983 ...sion.ols.distributionbase.cumulativev}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.cumulative}) has been already used, duplicate ignored
+
+ \relax
+l.2033 ...ssion.ols.distributionbase.cumulative}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.ntile}) has been already used, duplicate ignored
+
+ \relax
+l.2092 ...regression.ols.distributionbase.ntile}{}
+ [23]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.invdensity}) has been already used, duplicate ignored
+
+ \relax
+l.2151 ...ssion.ols.distributionbase.invdensity}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.discrete}) has been already used, duplicate ignored
+
+ \relax
+l.2210 ...ression.ols.distributionbase.discrete}{}
+ [24] [25] [26]pdfTeX warning
+ (ext4): destination with the same identifier (name{ecldoc:linearregression.ols
+.distributionbase.low}) has been already used, duplicate ignored
+
+ \relax
+l.2537 ...arregression.ols.distributionbase.low}{}
+ [27]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.high}) has been already used, duplicate ignored
+
+ \relax
+l.2585 ...rregression.ols.distributionbase.high}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.rangewidth}) has been already used, duplicate ignored
+
+ \relax
+l.2633 ...ssion.ols.distributionbase.rangewidth}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.densityv}) has been already used, duplicate ignored
+
+ \relax
+l.2681 ...ression.ols.distributionbase.densityv}{}
+ [28]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.cumulativev}) has been already used, duplicate ignored
+
+ \relax
+l.2731 ...sion.ols.distributionbase.cumulativev}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.cumulative}) has been already used, duplicate ignored
+
+ \relax
+l.2781 ...ssion.ols.distributionbase.cumulative}{}
+ [29]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.ntile}) has been already used, duplicate ignored
+
+ \relax
+l.2840 ...regression.ols.distributionbase.ntile}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.invdensity}) has been already used, duplicate ignored
+
+ \relax
+l.2899 ...ssion.ols.distributionbase.invdensity}{}
+ [30]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.discrete}) has been already used, duplicate ignored
+
+ \relax
+l.2958 ...ression.ols.distributionbase.discrete}{}
+ [31] [32] [33]))
+(./root/LogisticRegression/pkg.toc.tex [34]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 43--75
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 75
+ []
+
+
+Overfull \hbox (12.79999pt too wide) in alignment at lines 75--104
+ []
+ []
+
+[35
+
+] (./root/LogisticRegression/BinomialConfusion.ecl.tex [36])
+(./root/LogisticRegression/BinomialLogisticRegression.ecl.tex [37
+
+] [38
+
+]
+[39]) (./root/LogisticRegression/Confusion.ecl.tex [40])
+(./root/LogisticRegression/Constants.ecl.tex [41
+
+] [42
+
+] [43] [44] [45] [46]
+[47] [48] [49]) (./root/LogisticRegression/DataStats.ecl.tex [50] [51
+
+])
+(./root/LogisticRegression/Deviance_Analysis.ecl.tex [52])
+(./root/LogisticRegression/Deviance_Detail.ecl.tex [53
+
+])
+(./root/LogisticRegression/dimm.ecl.tex [54
+
+] [55
+
+])
+(./root/LogisticRegression/Distributions.ecl.tex [56] [57
+
+] [58] [59])
+(./root/LogisticRegression/ExtractBeta.ecl.tex [60])
+(./root/LogisticRegression/ExtractBeta_CI.ecl.tex [61
+
+])
+(./root/LogisticRegression/ExtractBeta_pval.ecl.tex [62
+
+])
+(./root/LogisticRegression/ExtractReport.ecl.tex [63
+
+])
+(./root/LogisticRegression/LogitPredict.ecl.tex [64
+
+])
+(./root/LogisticRegression/LogitScore.ecl.tex [65
+
+])
+(./root/LogisticRegression/Model_Deviance.ecl.tex [66
+
+])
+(./root/LogisticRegression/Null_Deviance.ecl.tex [67
+
+])
+(./root/LogisticRegression/Types.ecl.tex [68
+
+] [69
+
+] [70] [71] [72] [73] [74]
+[75] [76] [77]) (./root/LogisticRegression/IRLS/pkg.toc.tex [78]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--19
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 19
+ []
+
+(./root/LogisticRegression/IRLS/GetModel.ecl.tex [79
+
+] [80
+
+])
+(./root/LogisticRegression/IRLS/GetModel_global.ecl.tex [81] [82
+
+])
+(./root/LogisticRegression/IRLS/GetModel_local.ecl.tex [83] [84
+
+]))
+(./root/LogisticRegression/performance/pkg.toc.tex [85]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--12
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 12
+ []
+
+(./root/LogisticRegression/performance/RunBinomial.ecl.tex [86
+
+]))
+(./root/LogisticRegression/Tests/pkg.toc.tex [87
+
+]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--12
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 12
+ []
+
+(./root/LogisticRegression/Tests/Check_Dist.ecl.tex [88
+
+]))
+(./root/LogisticRegression/validation/pkg.toc.tex [89
+
+]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--18
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 18
+ []
+
+(./root/LogisticRegression/validation/BinomialRegression.ecl.tex [90
+
+])
+(./root/LogisticRegression/validation/discrete_GermanDS.ecl.tex [91
+
+] [92
+
+])
+(./root/LogisticRegression/validation/IrisDS.ecl.tex [93])
+(./root/LogisticRegression/validation/unit_test_dimm.ecl.tex [94
+
+])))
+(./root/ML_Core/pkg.toc.tex [95
+
+]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 39--68
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 68
+ []
+
+(./root/ML_Core/AppendID.ecl.tex [96
+
+]) (./root/ML_Core/AppendSeqID.ecl.tex
+[97
+
+]) (./root/ML_Core/Config.ecl.tex [98
+
+] [99
+
+])
+(./root/ML_Core/Constants.ecl.tex [100] [101
+
+])
+(./root/ML_Core/FieldAggregates.ecl.tex [102] [103
+
+] [104] [105] [106] [107])
+(./root/ML_Core/FromField.ecl.tex [108]) (./root/ML_Core/Generate.ecl.tex
+[109
+
+] [110
+
+]) (./root/ML_Core/ToField.ecl.tex [111] [112])
+(./root/ML_Core/Types.ecl.tex [113
+
+] [114
+
+] [115] [116] [117] [118] [119]
+[120] [121]) (./root/ML_Core/Interfaces/pkg.toc.tex [122]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--16
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 16
+ []
+
+(./root/ML_Core/Interfaces/IClassify.ecl.tex [123
+
+] [124
+
+] [125])
+(./root/ML_Core/Interfaces/IRegression.ecl.tex [126] [127
+
+]))
+(./root/ML_Core/Math/pkg.toc.tex [128]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--40
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 40
+ []
+
+
+Overfull \hbox (12.79999pt too wide) in alignment at lines 40--41
+ []
+ []
+
+(./root/ML_Core/Math/Beta.ecl.tex [129
+
+])
+(./root/ML_Core/Math/Distributions.ecl.tex [130
+
+] [131
+
+] [132] [133])
+(./root/ML_Core/Math/DoubleFac.ecl.tex [134]) (./root/ML_Core/Math/Fac.ecl.tex
+[135
+
+]) (./root/ML_Core/Math/gamma.ecl.tex [136
+
+])
+(./root/ML_Core/Math/log_gamma.ecl.tex [137
+
+])
+(./root/ML_Core/Math/lowerGamma.ecl.tex [138
+
+]) (./root/ML_Core/Math/NCK.ecl.tex [139
+
+]) (./root/ML_Core/Math/Poly.ecl.tex [140
+
+])
+(./root/ML_Core/Math/StirlingFormula.ecl.tex [141
+
+])
+(./root/ML_Core/Math/upperGamma.ecl.tex [142
+
+]))
+(./root/ML_Core/Tests/pkg.toc.tex [143
+
+]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--26
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 26
+ []
+
+(./root/ML_Core/Tests/Check_Dist.ecl.tex [144
+
+])
+(./root/ML_Core/Tests/field_aggregates.ecl.tex [145
+
+])
+(./root/ML_Core/Tests/generate.ecl.tex [146
+
+])
+(./root/ML_Core/Tests/test_appends.ecl.tex [147
+
+])
+(./root/ML_Core/Tests/test_discrete.ecl.tex [148
+
+])
+(./root/ML_Core/Tests/to_from.ecl.tex [149
+
+])
+(./root/ML_Core/Tests/Validate_Betas.ecl.tex [150
+
+])
+(./root/ML_Core/Tests/Validate_Gammas.ecl.tex [151
+
+]))
+(./root/ML_Core/Utils/pkg.toc.tex [152
+
+]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--22
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 22
+ []
+
+(./root/ML_Core/Utils/Fat.ecl.tex [153
+
+]) (./root/ML_Core/Utils/FatD.ecl.tex
+[154
+
+]) (./root/ML_Core/Utils/Gini.ecl.tex [155
+
+])
+(./root/ML_Core/Utils/SequenceInField.ecl.tex [156
+
+])))
+(./root/PBblas/pkg.toc.tex [157
+
+]
+Overfull \hbox (12.79999pt too wide) in alignment at lines 43--75
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 75
+ []
+
+
+Overfull \hbox (12.79999pt too wide) in alignment at lines 75--95
+ []
+ []
+
+[158
+
+] (./root/PBblas/Apply2Elements.ecl.tex [159]) (./root/PBblas/asum.ecl.tex
+[160
+
+]) (./root/PBblas/axpy.ecl.tex [161
+
+]) (./root/PBblas/Constants.ecl.tex
+[162
+
+] [163
+
+] [164] [165] [166] [167] [168]) (./root/PBblas/Converted.ecl.tex
+[169] [170
+
+] [171]) (./root/PBblas/ExtractTri.ecl.tex [172])
+(./root/PBblas/gemm.ecl.tex [173
+
+] [174
+
+]) (./root/PBblas/getrf.ecl.tex [175]
+[176
+
+]) (./root/PBblas/HadamardProduct.ecl.tex [177])
+(./root/PBblas/IElementFunc.ecl.tex [178
+
+] [179])
+(./root/PBblas/MatUtils.ecl.tex [180
+
+] [181
+
+] [182]) (./root/PBblas/potrf.ecl.tex [183] [184
+
+]) (./root/PBblas/scal.ecl.tex [185]) (./root/PBblas/tran.ecl.tex
+[186
+
+]) (./root/PBblas/trsm.ecl.tex [187
+
+] [188] [189
+
+])
+(./root/PBblas/Types.ecl.tex [190] [191
+
+] [192] [193] [194] [195])
+(./root/PBblas/Vector2Diag.ecl.tex [196])))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [197
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+ (./index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 7744 strings out of 494945
+ 120097 string characters out of 6181032
+ 191512 words of memory out of 5000000
+ 9783 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 29i,10n,36p,1781b,422s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on index.pdf (197 pages, 393073 bytes).
+PDF statistics:
+ 2312 PDF objects out of 2487 (max. 8388607)
+ 2080 compressed objects within 21 object streams
+ 845 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/index.out b/testing/eclbundles/ml-bundles-docs/tex/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/index.pdf
new file mode 100644
index 0000000..268026e
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/index.tex b/testing/eclbundles/ml-bundles-docs/tex/index.tex
new file mode 100644
index 0000000..8a7b3f0
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/pkg.toc.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/OLS.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/OLS.ecl.tex
new file mode 100644
index 0000000..376151b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/OLS.ecl.tex
@@ -0,0 +1,3273 @@
+\chapter*{\color{headfile}
+{\large LinearRegression\slash\hspace{0pt}}
+ \\
+OLS
+}
+\hypertarget{ecldoc:toc:LinearRegression.OLS}{}
+\hyperlink{ecldoc:toc:root/LinearRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+PBblas |
+PBblas.Types |
+PBblas.Converted |
+PBblas.MatUtils |
+ML\_Core.Math |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+OLS}}
+
+\hypertarget{ecldoc:linearregression.ols}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{OLS} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) X=empty\_data, DATASET(NumericField) Y=empty\_data)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear Regression Regression learns a function that maps a set of input data (independents) to one or more output variables (dependents). The resulting learned function is known as the model. That model can then be used repetitively to predict (i.e. estimate) the output value(s) based on new input data. Two major use cases are supported: 1) Learn and return a model 2) Use an existing (e.g. persisted) model to predict new values for Y Of course, both can be done in a single run. Alternatively, the model can be persisted and used indefinitely for prediction of Y values, as long as the record format has not changed, and the original training data remains representative of the population. OLS supports any number of independent variables (Multiple Regression) and multiple dependent variables (Multivariate Regression). In this way, multiple variables' values can be predicted from the same input (i.e. independent) data. Training data is presented as parameters to this module. When using a previously persisted model (use case 2 above), these parameters should be omitted. This module provides a rich set of analytics to assess the usefulness of the resulting linear regression model, and to determine the best subset of independent variables to include in the model. These include: For the whole model: - Analysis of Variance (ANOVA) - R-squared - Adjusted R-squared - F-Test - Akaike Information Criterion (AIC) For each coefficient: - Standard Error (SE) - T-statistic - P-value - Confidence Interval
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{Y}} ||| TABLE ( NumericField ) --- The dependent variable training data in DATASET(NumericField) format. Each observation (e.g. record) is identified by 'id', and each feature is identified by field number. Omit this parameter when predicting from a persisted model.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( NumericField ) --- The independent variable training data in DATASET(NumericField) format. Each observation (e.g. record) is identified by 'id', and each feature is identified by field number (i.e. 'number'). Omit this parameter when predicting from a persisted model.
+\end{description}
+
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARENT}}}] \textbf{ML\_Core.Interfaces.IRegression} <../ML\_Core/Interfaces/IRegression.ecl.tex>
+\end{description}
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:linearregression.ols.getmodel}{GetModel}
+: GetModel Returns the learned model that maps X's to Y's
+\item \hyperlink{ecldoc:linearregression.ols.betas}{Betas}
+: Return raw Beta values as numeric fields Extracts Beta values from the model
+\item \hyperlink{ecldoc:linearregression.ols.predict}{Predict}
+: Predict the dependent variable values (Y) for any set of independent variables (X)
+\item \hyperlink{ecldoc:linearregression.ols.makersq}{makeRSQ}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.rsquared}{RSquared}
+: RSquared Calculate the R-Squared Metric used to assess the fit of the regression line to the training data
+\item \hyperlink{ecldoc:linearregression.ols.anovarec}{AnovaRec}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.calcanova}{calcAnova}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.anova}{Anova}
+: ANOVA (Analysis of Variance) report Analyzes the sources of variance
+\item \hyperlink{ecldoc:linearregression.ols.se}{SE}
+: Standard Error of the Regression Coefficients Describes the variability of the regression error for each coefficient
+\item \hyperlink{ecldoc:linearregression.ols.tstat}{TStat}
+: T-Statistic The T-statistic identifies the significance of the value of each regression coefficient
+\item \hyperlink{ecldoc:linearregression.ols.adjrsquared}{AdjRSquared}
+: Adjusted R2 Calculate Adjusted R Squared which is a scaled version of R Squared that does not arbitrarily increase with the number of features
+\item \hyperlink{ecldoc:linearregression.ols.aicrec}{AICRec}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.aic}{AIC}
+: Akaike Information Criterion (AIC) Information theory based criterion for assessing Goodness of Fit (GOF)
+\item \hyperlink{ecldoc:linearregression.ols.rangevec}{RangeVec}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.pval}{pVal}
+: P-Value Calculate the P-value for each coefficient, which is the probability that the coefficient is insignificant (i.e
+\item \hyperlink{ecldoc:linearregression.ols.confintrec}{ConfintRec}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.confint}{ConfInt}
+: Confidence Interval The Confidence Interval determines the upper and lower bounds of each estimated coefficient given a confidence level (level) that is required
+\item \hyperlink{ecldoc:linearregression.ols.ftestrec}{FTestRec}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.ftest}{FTest}
+: F-Test Calculate the P-value for the full regression, which is the probability that all of the coefficients are insignificant (i.e
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+GetModel}}
+
+\hypertarget{ecldoc:linearregression.ols.getmodel}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Model)} & \textbf{GetModel} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+GetModel Returns the learned model that maps X's to Y's. In the case of OLS, the model represents a set of Betas which are the coefficients of the linear model: Beta0 * 1 + Beta1 * Field1 + Beta2 * Field2 \ldots The ID of each model record specifies to which Y variable the coefficient applies. The Field Number ('number') indicates to which field of X the beta is to be applied. Field number 1 provides the intercept portion of the linear model and is always multiplied by 1. Note that if multiple work-items are provided within X and Y, there will be multiple models returned. The models can be separated by their work item id (i.e. 'wi'). A single model can be extracted from a myriad model by using e.g., model(wi=myWI\_id). GetModel should not be called when predicting using a previously persisted model (i.e. when training data was not passed to the module.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- Model in DATASET(Layout\_Model) format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] ML\_core/Types.Layout\_Model
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Betas}}
+
+\hypertarget{ecldoc:linearregression.ols.betas}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(NumericField)} & \textbf{Betas} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Model) model=GetModel)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Return raw Beta values as numeric fields Extracts Beta values from the model. Can be used during training and prediction phases. For use during training phase, the 'model' parameter can be omitted. GetModel will be called to retrieve the model based on the training data. For use during prediction phase, a previously persisted model should be provided. The 'number' field of the returned NumericField records specifies to which Y the coefficient applies. The 'id' field of the returned record indicates the position of the Beta value. ID = 1 provides the Beta for the constant term (i.e. the Y intercept) while subsequent values reflect the Beta for each correspondingly numbered X feature. Feature 1 corresponds to Beta with 'id' = 2 and so on. If 'model' contains multiple work-items, Separate sets of Betas will be returned for each of the 'myriad' models (distinguished by 'wi').
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{model}} ||| TABLE ( Layout\_Model ) --- Optional parameter provides a model that was previously retrieved using GetModel. If omitted, GetModel will be used as the model.
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- DATASET(NumericField) containing the Beta values.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Predict}}
+
+\hypertarget{ecldoc:linearregression.ols.predict}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(NumericField)} & \textbf{Predict} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) newX, DATASET(Layout\_Model) model=GetModel)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Predict the dependent variable values (Y) for any set of independent variables (X). Returns a predicted Y values for each observation (i.e. record) of X. This supports the 'myriad' style interface in that multiple independent work items may be present in 'newX', and multiple independent models may be provided in 'model'. The resulting predicted values will also be separable by work item (i.e. wi).
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{model}} ||| TABLE ( Layout\_Model ) --- Optional. A model that was previously returned from GetModel (above). Note that a model from a previous run will only be valid if the field numbers in X are the same as when the model was learned. If this parameter is omitted, the current model will be used.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{newX}} ||| TABLE ( NumericField ) --- The set of observations of independent variables in DATASET(NumericField) format.
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- An estimation of the corresponding Y value for each observation of newX. Returned in DATASET(NumericField) format with field number (i.e. 'number') indicating the dependent variable that is predicted.
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} TRANSFORM}
+makeRSQ}}
+
+\hypertarget{ecldoc:linearregression.ols.makersq}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} R2Rec} & \textbf{makeRSQ} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (CoCoRec coco)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{coco}} ||| ROW ( CoCoRec ) --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{R2Rec} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RSquared}}
+
+\hypertarget{ecldoc:linearregression.ols.rsquared}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(R2Rec)} & \textbf{RSquared} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+RSquared Calculate the R-Squared Metric used to assess the fit of the regression line to the training data. Since the regression has chosen the best (i.e. least squared error) line matching the data, this can be thought of as a measurement of the linearity of the training data. R Squared generally varies between 0 and 1, with 1 indicating an exact linear fit, and 0 indicating that a linear fit will have no predictive power. Negative values are possible under certain conditions, and indicate that the mean(Y) will be more predictive than any linear fit. Moderate values of R squared (e.g. .5) may indicate that the relationship of X -> Y is non-linear, or that the measurement error is high relative to the linear correlation (e.g. many outliers). In the former case, increasing the dimensionality of X, such as by using polynomial variants of the features, may yield a better fit. R squared always increases when additional independent variables are added, so it should not be used to determine the optimal set of X variables to include. For that purpose, use Adjusted R Squared (below) which penalizes larger numbers of variables. Note that the result of this call is only meaningful during training phase (use case 1 above) as it is an analysis based on the training data which is not provided during a prediction-only phase.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 RSquared \} )} --- DATASET(R2Rec) with one record per dependent variable, per work-item. The number field indicates the dependent variable and coresponds to the number field of the dependent (Y) variable to which it applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+AnovaRec}}
+
+\hypertarget{ecldoc:linearregression.ols.anovarec}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{AnovaRec} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{error\_ss}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{total\_df}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{total\_ms}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{error\_df}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{error\_ms}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{model\_ms}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{model\_ss}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{model\_f}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{total\_ss}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{model\_df}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} TRANSFORM}
+calcAnova}}
+
+\hypertarget{ecldoc:linearregression.ols.calcanova}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} AnovaRec} & \textbf{calcAnova} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (tmpRec le)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{le}} ||| ROW ( tmpRec ) --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{AnovaRec} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Anova}}
+
+\hypertarget{ecldoc:linearregression.ols.anova}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Anova} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+ANOVA (Analysis of Variance) report Analyzes the sources of variance. Basic ANOVA equality: Model + Error = Total Determines how much of the variance of Y is explained by the regression model, versus how much is due to the error term (i.e. unexplained variance). This attribute is only meaningful during the training phase. Provides one record per work-item. Each record provides the following statistics: - Total\_SS -- Total Sum of Squares (SS) variance of the dependent data - Model\_SS -- The SS variance represented within the model - Error\_SS -- The SS variance not reflected by the model (i.e. Total\_SS - Error\_SS) - Total\_DF -- The total degrees of freedom within the dependent data - Model\_DF -- Degrees of freedom of the model - Error\_DF -- Degrees of freedom of the error component - Total\_MS -- The Mean Square (MS) variance of the dependent data - Model\_MS -- The Mean Square (MS) variance represented within the model - Error\_MS -- The MS variance not reflected by the model - Model\_F -- The F-Test statistic: Model\_MS / Error\_MS
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 Total\_SS , REAL8 Model\_SS , REAL8 Error\_SS , UNSIGNED8 Total\_DF , UNSIGNED8 Model\_DF , UNSIGNED8 Error\_DF , REAL8 Total\_MS , REAL8 Model\_MS , REAL8 Error\_MS , REAL8 Model\_F \} )} --- DATASET(AnovaRec), one per work-item per dependent (Y) variable The number field indicates the dependent variable to which the analysis applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+SE}}
+
+\hypertarget{ecldoc:linearregression.ols.se}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(NumericField)} & \textbf{SE} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Standard Error of the Regression Coefficients Describes the variability of the regression error for each coefficient. Only meaningful during the training phase.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- DATASET(NumericField), one record per Beta coefficient per dependent variable per work-item. The 'id' field is the coefficient number, with 1 being the Y intercept, 2 being the coefficient for the first feature, etc. The 'number' field indicates the dependent variable to which the coefficient applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+TStat}}
+
+\hypertarget{ecldoc:linearregression.ols.tstat}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(NumericField)} & \textbf{TStat} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+T-Statistic The T-statistic identifies the significance of the value of each regression coefficient. Its calculation is simply the value of the coefficient divided by the Standard Error of the coefficient. A larger absolute value of the T-statistic indicates that the coefficient is more significant. Only meaningful during the training phase.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- DATSET(NumericField), one record per Beta coefficient per dependent variable per work-item. The 'id' field is the coefficient number, with 1 being the Y intercept, 2 being the coefficient for the first feature, etc. The number field indicates the dependent variable to which the coefficient applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+AdjRSquared}}
+
+\hypertarget{ecldoc:linearregression.ols.adjrsquared}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(R2Rec)} & \textbf{AdjRSquared} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Adjusted R2 Calculate Adjusted R Squared which is a scaled version of R Squared that does not arbitrarily increase with the number of features. Adjusted R2, rather than R2 should always be used when trying to determine the best set of features to include in a model. When adding features, R2 will always increase, whether or not it improves the predictive power of the model. Adjusted R2, however, will only increase with the predictive power of the model.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 RSquared \} )} --- DATASET(R2Rec), one record per dependent variable per work-item. The number field indicates the dependent variable and corresponds to the number field of the dependent (Y) variable to which it applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+AICRec}}
+
+\hypertarget{ecldoc:linearregression.ols.aicrec}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{AICRec} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{aic}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+AIC}}
+
+\hypertarget{ecldoc:linearregression.ols.aic}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(AICRec)} & \textbf{AIC} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Akaike Information Criterion (AIC) Information theory based criterion for assessing Goodness of Fit (GOF). Lower values mean better fit.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 AIC \} )} --- DATASET(AICRec), one record per dependent variable per work-item. The number field indicates the dependent variable and corresponds to the number field of the dependent (Y) variable to which it applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+RangeVec}}
+
+\hypertarget{ecldoc:linearregression.ols.rangevec}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RangeVec} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{p}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{rangenumber}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{rangehigh}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{rangelow}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+DistributionBase}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{DistributionBase} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_Count Nranges = 10000)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{nranges}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.low}{Low}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.high}{High}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.density}{Density}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.rangewidth}{RangeWidth}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.densityv}{DensityV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.cumulativev}{CumulativeV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.cumulative}{Cumulative}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.ntile}{NTile}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.invdensity}{InvDensity}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.discrete}{Discrete}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Low}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.low}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Low} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+High}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.high}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{High} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Density}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.density}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Density} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RangeWidth}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.rangewidth}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RangeWidth} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+DensityV}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.densityv}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(RangeVec)} & \textbf{DensityV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+CumulativeV}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.cumulativev}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{CumulativeV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Cumulative}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.cumulative}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Cumulative} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NTile}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.ntile}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{NTile} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal Pc)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{pc}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+InvDensity}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.invdensity}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{InvDensity} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal delta)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{delta}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Discrete}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.discrete}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.distributionbase}{DistributionBase} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Discrete} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{BOOLEAN} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+TDistribution}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{TDistribution} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_Discrete v\_in,t\_Count NRanges = 10000)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{nranges}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{v\_in}} ||| INTEGER4 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARENT}}}] \textbf{linearregression.ols.distributionbase}
+\end{description}
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.densityv}{DensityV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.ntile}{NTile}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.discrete}{Discrete}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution.invdensity}{InvDensity}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution.high}{High}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution.low}{Low}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution.rangewidth}{RangeWidth}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution.density}{Density}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution.cumulativev}{CumulativeV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.tdistribution.cumulative}{Cumulative}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+DensityV}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.densityv}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(RangeVec)} & \textbf{DensityV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NTile}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.ntile}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{NTile} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal Pc)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{pc}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Discrete}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.discrete}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Discrete} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{BOOLEAN} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+InvDensity}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution.invdensity}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{InvDensity} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal delta)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{delta}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+High}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution.high}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{High} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Low}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution.low}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Low} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RangeWidth}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution.rangewidth}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RangeWidth} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Density}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution.density}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Density} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+CumulativeV}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution.cumulativev}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{CumulativeV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Cumulative}}
+
+\hypertarget{ecldoc:linearregression.ols.tdistribution.cumulative}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.tdistribution}{TDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Cumulative} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+FDistribution}}
+
+\hypertarget{ecldoc:linearregression.ols.fdistribution}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{FDistribution} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_Discrete d1\_in, t\_Discrete d2\_in, t\_Count NRanges = 10000)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{d1\_in}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{d2\_in}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{nranges}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARENT}}}] \textbf{linearregression.ols.distributionbase}
+\end{description}
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.densityv}{DensityV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.cumulativev}{CumulativeV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.cumulative}{Cumulative}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.ntile}{NTile}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.invdensity}{InvDensity}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.discrete}{Discrete}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.fdistribution.low}{Low}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.fdistribution.high}{High}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.fdistribution.rangewidth}{RangeWidth}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.fdistribution.density}{Density}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+DensityV}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.densityv}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(RangeVec)} & \textbf{DensityV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+CumulativeV}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.cumulativev}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{CumulativeV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Cumulative}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.cumulative}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Cumulative} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NTile}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.ntile}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{NTile} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal Pc)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{pc}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+InvDensity}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.invdensity}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{InvDensity} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal delta)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{delta}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Discrete}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.discrete}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Discrete} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{BOOLEAN} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Low}}
+
+\hypertarget{ecldoc:linearregression.ols.fdistribution.low}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Low} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+High}}
+
+\hypertarget{ecldoc:linearregression.ols.fdistribution.high}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{High} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RangeWidth}}
+
+\hypertarget{ecldoc:linearregression.ols.fdistribution.rangewidth}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RangeWidth} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Density}}
+
+\hypertarget{ecldoc:linearregression.ols.fdistribution.density}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.fdistribution}{FDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Density} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+NormalDistribution}}
+
+\hypertarget{ecldoc:linearregression.ols.normaldistribution}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{NormalDistribution} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_Count NRanges)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{nranges}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARENT}}}] \textbf{linearregression.ols.distributionbase}
+\end{description}
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.low}{Low}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.high}{High}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.rangewidth}{RangeWidth}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.densityv}{DensityV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.cumulativev}{CumulativeV}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.cumulative}{Cumulative}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.ntile}{NTile}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.invdensity}{InvDensity}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.distributionbase.discrete}{Discrete}
+: No Documentation Found
+\item \hyperlink{ecldoc:linearregression.ols.normaldistribution.density}{Density}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Low}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.low}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Low} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+High}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.high}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{High} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RangeWidth}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.rangewidth}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RangeWidth} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+DensityV}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.densityv}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(RangeVec)} & \textbf{DensityV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+CumulativeV}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.cumulativev}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{CumulativeV} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} ()}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED8 RangeNumber , REAL8 RangeLow , REAL8 RangeHigh , REAL8 P \} )} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Cumulative}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.cumulative}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Cumulative} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NTile}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.ntile}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{NTile} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal Pc)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{pc}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+InvDensity}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.invdensity}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{InvDensity} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal delta)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{delta}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Discrete}}
+
+\hypertarget{ecldoc:linearregression.ols.distributionbase.discrete}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Discrete} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{BOOLEAN} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{INHERITED}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Density}}
+
+\hypertarget{ecldoc:linearregression.ols.normaldistribution.density}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols.normaldistribution}{NormalDistribution} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} t\_FieldReal} & \textbf{Density} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (t\_FieldReal t)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{t}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+pVal}}
+
+\hypertarget{ecldoc:linearregression.ols.pval}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{pVal} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+P-Value Calculate the P-value for each coefficient, which is the probability that the coefficient is insignificant (i.e. actually zero). A low P-value (e.g. .05) provides evidence that the coefficient is significant in the model. A high P-value indicates that the coefficient value should, in fact, be zero. P-value is related to the T-Statistic, and can be thought of as a normalized version of the T-Statistic. Only meaningful during the training phase.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- DATSET(NumericField), one record per Beta coefficient per dependent variable per work-item. The 'id' field is the coefficient number, with 1 being the Y intercept, 2 being the coefficient for the first feature, etc. The number field indicates the dependent variable and corresponds to the number field of the dependent (Y) variable to which it applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+ConfintRec}}
+
+\hypertarget{ecldoc:linearregression.ols.confintrec}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{ConfintRec} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{upperint}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{lowerint}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+ConfInt}}
+
+\hypertarget{ecldoc:linearregression.ols.confint}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{ConfInt} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Types.t\_fieldReal level)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Confidence Interval The Confidence Interval determines the upper and lower bounds of each estimated coefficient given a confidence level (level) that is required. For example, one could say that there is a 95\% probability (level) that the coefficient of the first independent variable is between 2.05 and 3.62. This allows error margins to be determined with the desired confidence level. If the confidence interval spans zero, it implies that the coefficient may not be significant at the specified confidence level.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{level}} ||| REAL8 --- The level of confidence required, expressed as a percentage from 0.0 to 100.0
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 LowerInt , REAL8 UpperInt \} )} --- DATASET(ConfintRec) with one record per coefficient per dependent variable per work-item. The 'id' field is the coefficient number, with 1 being the Y intercept, 2 being the coefficient for the first feature, etc. The number field indicates the dependent variable and corresponds to the number field of the dependent (Y) variable to which it applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+FTestRec}}
+
+\hypertarget{ecldoc:linearregression.ols.ftestrec}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{FTestRec} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{pvalue}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{model\_f}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+FTest}}
+
+\hypertarget{ecldoc:linearregression.ols.ftest}{}
+\hspace{0pt} \hyperlink{ecldoc:linearregression.ols}{OLS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(FTestRec)} & \textbf{FTest} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+F-Test Calculate the P-value for the full regression, which is the probability that all of the coefficients are insignificant (i.e. actually zero). A low P-value (e.g. .05) provides evidence that at least one coefficient is significant. A high P-value indicates that all the coefficient values should in fact be zero, implying that the regression has no statistically significant predictive power. P-value is related to the ANOVA F-Statistic, and can be thought of as a standardized version of the ANOVA F-Statistic. The F-Test and T-Test are similar, except that the T-test is used to test the significance of each coefficient, while the F-Test is used to test the significance of the entire regression. For simple linear regression (i.e. only one independent variable, the T-Test and F-Test are equivalent.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 Model\_F , REAL8 pValue \} )} --- DATASET(FTestRec), one record per dependent variable per work-item. The number field indicates the dependent variable and corresponds to the number field of the dependent (Y) variable to which it applies.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.log
new file mode 100644
index 0000000..1480322
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.log
@@ -0,0 +1,548 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/LinearRegression/index.tex
+(./root/LinearRegression/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/LinearRegression/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+ (/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/LinearRegression/index.out) (root/LinearRegression/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/LinearRegression/pkg.tmp.tex (/usr/share/texmf/tex/latex/lm/ot1lmr.fd)
+(/usr/share/texmf/tex/latex/lm/omllmm.fd)
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd)
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)
+Overfull \hbox (12.79999pt too wide) in alignment at lines 43--48
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 48
+ []
+
+(./root/LinearRegression/OLS.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 9.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 9.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 9.
+ (/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+) [2
+
+] [3] [4] [5] [6]
+[7] [8] [9] [10] [11] [12] [13] [14] [15]pdfTeX warning (ext4): destination wit
+h the same identifier (name{ecldoc:linearregression.ols.distributionbase.densit
+yv}) has been already used, duplicate ignored
+
+ \relax
+l.1327 ...ression.ols.distributionbase.densityv}{}
+ [16]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.ntile}) has been already used, duplicate ignored
+
+ \relax
+l.1377 ...regression.ols.distributionbase.ntile}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.discrete}) has been already used, duplicate ignored
+
+ \relax
+l.1436 ...ression.ols.distributionbase.discrete}{}
+ [17] [18] [19] [20]pdfTeX wa
+rning (ext4): destination with the same identifier (name{ecldoc:linearregressio
+n.ols.distributionbase.densityv}) has been already used, duplicate ignored
+
+ \relax
+l.1933 ...ression.ols.distributionbase.densityv}{}
+ [21]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.cumulativev}) has been already used, duplicate ignored
+
+ \relax
+l.1983 ...sion.ols.distributionbase.cumulativev}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.cumulative}) has been already used, duplicate ignored
+
+ \relax
+l.2033 ...ssion.ols.distributionbase.cumulative}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.ntile}) has been already used, duplicate ignored
+
+ \relax
+l.2092 ...regression.ols.distributionbase.ntile}{}
+ [22]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.invdensity}) has been already used, duplicate ignored
+
+ \relax
+l.2151 ...ssion.ols.distributionbase.invdensity}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.discrete}) has been already used, duplicate ignored
+
+ \relax
+l.2210 ...ression.ols.distributionbase.discrete}{}
+ [23] [24] [25]pdfTeX warning
+ (ext4): destination with the same identifier (name{ecldoc:linearregression.ols
+.distributionbase.low}) has been already used, duplicate ignored
+
+ \relax
+l.2537 ...arregression.ols.distributionbase.low}{}
+ [26]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.high}) has been already used, duplicate ignored
+
+ \relax
+l.2585 ...rregression.ols.distributionbase.high}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.rangewidth}) has been already used, duplicate ignored
+
+ \relax
+l.2633 ...ssion.ols.distributionbase.rangewidth}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.densityv}) has been already used, duplicate ignored
+
+ \relax
+l.2681 ...ression.ols.distributionbase.densityv}{}
+ [27]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.cumulativev}) has been already used, duplicate ignored
+
+ \relax
+l.2731 ...sion.ols.distributionbase.cumulativev}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.cumulative}) has been already used, duplicate ignored
+
+ \relax
+l.2781 ...ssion.ols.distributionbase.cumulative}{}
+ [28]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.ntile}) has been already used, duplicate ignored
+
+ \relax
+l.2840 ...regression.ols.distributionbase.ntile}{}
+ pdfTeX warning (ext4): destin
+ation with the same identifier (name{ecldoc:linearregression.ols.distributionba
+se.invdensity}) has been already used, duplicate ignored
+
+ \relax
+l.2899 ...ssion.ols.distributionbase.invdensity}{}
+ [29]pdfTeX warning (ext4): d
+estination with the same identifier (name{ecldoc:linearregression.ols.distribut
+ionbase.discrete}) has been already used, duplicate ignored
+
+ \relax
+l.2958 ...ression.ols.distributionbase.discrete}{}
+ [30] [31] [32]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [33]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/LinearRegression/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6698 strings out of 494945
+ 97303 string characters out of 6181032
+ 187308 words of memory out of 5000000
+ 9770 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,10n,36p,1684b,395s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/LinearRegression/index.pdf (33 pages, 173063 bytes).
+PDF statistics:
+ 485 PDF objects out of 1000 (max. 8388607)
+ 439 compressed objects within 5 object streams
+ 149 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.pdf
new file mode 100644
index 0000000..12e4818
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.tex
new file mode 100644
index 0000000..2971b80
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/LinearRegression/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/pkg.tmp.tex
new file mode 100644
index 0000000..5b0f39b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/pkg.tmp.tex
@@ -0,0 +1,51 @@
+\chapter*{\color{headtoc} LinearRegression}
+\hypertarget{ecldoc:toc:root/LinearRegression}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+LinearRegression
+ \\
+\hline
+Version &
+3.0.0
+ \\
+\hline
+Description &
+Linear Regression Algorithm Bundle
+ \\
+\hline
+License &
+\url{http://www.apache.org/licenses/LICENSE-2.0}
+ \\
+\hline
+Copyright &
+Copyright (C) 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+DependsOn &
+ML\_Core, PBblas
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LinearRegression.OLS}{OLS.ecl} \\
+Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear Regression Regression learns a function that maps a set of input data (independents) to one or more output variables (dependents) \\
+\hline
+\end{longtable}
+}
+
+\input{root/LinearRegression/OLS.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/pkg.toc.tex
new file mode 100644
index 0000000..c35d011
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LinearRegression/pkg.toc.tex
@@ -0,0 +1,51 @@
+\chapter*{\color{headtoc} LinearRegression}
+\hypertarget{ecldoc:toc:root/LinearRegression}{}
+\hyperlink{ecldoc:toc:root}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+LinearRegression
+ \\
+\hline
+Version &
+3.0.0
+ \\
+\hline
+Description &
+Linear Regression Algorithm Bundle
+ \\
+\hline
+License &
+\url{http://www.apache.org/licenses/LICENSE-2.0}
+ \\
+\hline
+Copyright &
+Copyright (C) 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+DependsOn &
+ML\_Core, PBblas
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LinearRegression.OLS}{OLS.ecl} \\
+Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear Regression Regression learns a function that maps a set of input data (independents) to one or more output variables (dependents) \\
+\hline
+\end{longtable}
+}
+
+\input{root/LinearRegression/OLS.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/BinomialConfusion.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/BinomialConfusion.ecl.tex
new file mode 100644
index 0000000..85c9d66
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/BinomialConfusion.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+BinomialConfusion
+}
+\hypertarget{ecldoc:toc:LogisticRegression.BinomialConfusion}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+BinomialConfusion}}
+
+\hypertarget{ecldoc:logisticregression.binomialconfusion}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Binomial\_Confusion\_Summary)} & \textbf{BinomialConfusion} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Core\_Types.Confusion\_Detail) d)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Binomial confusion matrix. Work items with multinomial responses are ignored by this function. The higher value lexically is considered to be the positive indication.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{d}} ||| TABLE ( Confusion\_Detail ) --- confusion detail for the work item and classifier
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 true\_positive , UNSIGNED8 true\_negative , UNSIGNED8 false\_positive , UNSIGNED8 false\_negative , UNSIGNED8 cond\_pos , UNSIGNED8 pred\_pos , UNSIGNED8 cond\_neg , UNSIGNED8 pred\_neg , REAL8 prevalence , REAL8 accuracy , REAL8 true\_pos\_rate , REAL8 false\_neg\_rate , REAL8 false\_pos\_rate , REAL8 true\_neg\_rate , REAL8 pos\_pred\_val , REAL8 false\_disc\_rate , REAL8 false\_omit\_rate , REAL8 neg\_pred\_val \} )} --- confusion matrix for a binomial classifier
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/BinomialLogisticRegression.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/BinomialLogisticRegression.ecl.tex
new file mode 100644
index 0000000..eb6d010
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/BinomialLogisticRegression.ecl.tex
@@ -0,0 +1,260 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+BinomialLogisticRegression
+}
+\hypertarget{ecldoc:toc:LogisticRegression.BinomialLogisticRegression}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+LogisticRegression |
+LogisticRegression.Constants |
+ML\_Core.Interfaces |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+BinomialLogisticRegression}}
+
+\hypertarget{ecldoc:logisticregression.binomiallogisticregression}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{BinomialLogisticRegression} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (UNSIGNED max\_iter=200, REAL8 epsilon=Constants.default\_epsilon, REAL8 ridge=Constants.default\_ridge)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Binomial logistic regression using iteratively re-weighted least squares.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{epsilon}} ||| REAL8 --- the minimum change in the Beta value estimate to continue
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{max\_iter}} ||| UNSIGNED8 --- maximum number of iterations to try
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{ridge}} ||| REAL8 --- a value to populate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+\end{description}
+
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARENT}}}] \textbf{ML\_Core.Interfaces.IClassify} <../ML\_Core/Interfaces/IClassify.ecl.tex>
+\end{description}
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:logisticregression.binomiallogisticregression.getmodel}{GetModel}
+: Calculate the model to fit the observation data to the observed classes
+\item \hyperlink{ecldoc:logisticregression.binomiallogisticregression.classify}{Classify}
+: Classify the observations using a model
+\item \hyperlink{ecldoc:logisticregression.binomiallogisticregression.report}{Report}
+: Report the confusion matrix for the classifier and training data
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+GetModel}}
+
+\hypertarget{ecldoc:logisticregression.binomiallogisticregression.getmodel}{}
+\hspace{0pt} \hyperlink{ecldoc:logisticregression.binomiallogisticregression}{BinomialLogisticRegression} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Layout\_Model)} & \textbf{GetModel} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.NumericField) observations, DATASET(Types.DiscreteField) classifications)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Calculate the model to fit the observation data to the observed classes.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{observations}} ||| TABLE ( NumericField ) --- the observed explanatory values
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{classifications}} ||| TABLE ( DiscreteField ) --- the observed classification used to build the model
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- the encoded model
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Classify}}
+
+\hypertarget{ecldoc:logisticregression.binomiallogisticregression.classify}{}
+\hspace{0pt} \hyperlink{ecldoc:logisticregression.binomiallogisticregression}{BinomialLogisticRegression} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Classify\_Result)} & \textbf{Classify} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.Layout\_Model) model, DATASET(Types.NumericField) new\_observations)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Classify the observations using a model.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{model}} ||| TABLE ( Layout\_Model ) --- The model, which must be produced by a corresponding getModel function.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{new\_observations}} ||| TABLE ( NumericField ) --- observations to be classified
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , INTEGER4 value , REAL8 conf \} )} --- Classification with a confidence value
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Report}}
+
+\hypertarget{ecldoc:logisticregression.binomiallogisticregression.report}{}
+\hspace{0pt} \hyperlink{ecldoc:logisticregression.binomiallogisticregression}{BinomialLogisticRegression} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Confusion\_Detail)} & \textbf{Report} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.Layout\_Model) model, DATASET(Types.NumericField) observations, DATASET(Types.DiscreteField) classifications)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Report the confusion matrix for the classifier and training data.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{model}} ||| TABLE ( Layout\_Model ) --- the encoded model
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{observations}} ||| TABLE ( NumericField ) --- the explanatory values.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{classifications}} ||| TABLE ( DiscreteField ) --- the classifications associated with the observations
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 classifier , INTEGER4 actual\_class , INTEGER4 predict\_class , UNSIGNED4 occurs , BOOLEAN correct \} )} --- the confusion matrix showing correct and incorrect results
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{OVERRIDE}}}]
+\end{description}
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Confusion.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Confusion.ecl.tex
new file mode 100644
index 0000000..2c5d37e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Confusion.ecl.tex
@@ -0,0 +1,68 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Confusion
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Confusion}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Confusion}}
+
+\hypertarget{ecldoc:logisticregression.confusion}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Confusion\_Detail)} & \textbf{Confusion} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(DiscreteField) dependents, DATASET(DiscreteField) predicts)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Detail confusion records to compare actual versus predicted response variable values.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{predicts}} ||| TABLE ( DiscreteField ) --- the predicted responses
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dependents}} ||| TABLE ( DiscreteField ) --- the original response values
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 classifier , INTEGER4 actual\_class , INTEGER4 predict\_class , UNSIGNED4 occurs , BOOLEAN correct \} )} --- confusion counts by predicted and actual response values.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Constants.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Constants.ecl.tex
new file mode 100644
index 0000000..6c87973
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Constants.ecl.tex
@@ -0,0 +1,925 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Constants
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Constants}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Constants}}
+
+\hypertarget{ecldoc:LogisticRegression.Constants}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Constants} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:logisticregression.constants.limit_card}{limit\_card}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.default_epsilon}{default\_epsilon}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.default_ridge}{default\_ridge}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.local_cap}{local\_cap}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_base}{id\_base}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_iters}{id\_iters}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_delta}{id\_delta}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_correct}{id\_correct}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_incorrect}{id\_incorrect}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_stat_set}{id\_stat\_set}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_betas}{id\_betas}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_betas_coef}{id\_betas\_coef}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.id_betas_se}{id\_betas\_SE}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.base_builder}{base\_builder}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.base_max_iter}{base\_max\_iter}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.base_epsilon}{base\_epsilon}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.base_ind_vars}{base\_ind\_vars}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.base_dep_vars}{base\_dep\_vars}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.base_obs}{base\_obs}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.builder_irls_local}{builder\_irls\_local}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.builder_irls_global}{builder\_irls\_global}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.constants.builder_softmax}{builder\_softmax}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+limit\_card}}
+
+\hypertarget{ecldoc:logisticregression.constants.limit_card}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} UNSIGNED2} & \textbf{limit\_card} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED2} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+default\_epsilon}}
+
+\hypertarget{ecldoc:logisticregression.constants.default_epsilon}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{default\_epsilon} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+default\_ridge}}
+
+\hypertarget{ecldoc:logisticregression.constants.default_ridge}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{default\_ridge} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+local\_cap}}
+
+\hypertarget{ecldoc:logisticregression.constants.local_cap}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} UNSIGNED4} & \textbf{local\_cap} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED4} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_base}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_base}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_base} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_iters}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_iters}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_iters} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_delta}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_delta}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_delta} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_correct}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_correct}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_correct} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_incorrect}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_incorrect}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_incorrect} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_stat\_set}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_stat_set}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_stat\_set} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{SET ( INTEGER8 )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_betas}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_betas}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_betas} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_betas\_coef}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_betas_coef}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_betas\_coef} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+id\_betas\_SE}}
+
+\hypertarget{ecldoc:logisticregression.constants.id_betas_se}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{id\_betas\_SE} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+base\_builder}}
+
+\hypertarget{ecldoc:logisticregression.constants.base_builder}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{base\_builder} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+base\_max\_iter}}
+
+\hypertarget{ecldoc:logisticregression.constants.base_max_iter}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{base\_max\_iter} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+base\_epsilon}}
+
+\hypertarget{ecldoc:logisticregression.constants.base_epsilon}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{base\_epsilon} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+base\_ind\_vars}}
+
+\hypertarget{ecldoc:logisticregression.constants.base_ind_vars}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{base\_ind\_vars} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+base\_dep\_vars}}
+
+\hypertarget{ecldoc:logisticregression.constants.base_dep_vars}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{base\_dep\_vars} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+base\_obs}}
+
+\hypertarget{ecldoc:logisticregression.constants.base_obs}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{base\_obs} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+builder\_irls\_local}}
+
+\hypertarget{ecldoc:logisticregression.constants.builder_irls_local}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{builder\_irls\_local} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+builder\_irls\_global}}
+
+\hypertarget{ecldoc:logisticregression.constants.builder_irls_global}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{builder\_irls\_global} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+builder\_softmax}}
+
+\hypertarget{ecldoc:logisticregression.constants.builder_softmax}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{builder\_softmax} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/DataStats.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/DataStats.ecl.tex
new file mode 100644
index 0000000..024b20a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/DataStats.ecl.tex
@@ -0,0 +1,79 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+DataStats
+}
+\hypertarget{ecldoc:toc:LogisticRegression.DataStats}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+LogisticRegression.Constants |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+DataStats}}
+
+\hypertarget{ecldoc:logisticregression.datastats}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Data\_Info)} & \textbf{DataStats} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Core\_Types.NumericField) indep, DATASET(Core\_Types.DiscreteField) dep, BOOLEAN field\_details=FALSE)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Information about the datasets. Without details the range for the x and y (independent and dependent) columns. Note that a column of all zero values cannot be distinguished from a missing column. When details are requested, the cardinality, minimum, and maximum values are returned. A zero cardinality is returned when the field cardinality exceeds the Constants.limit\_card value.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{field\_details}} ||| BOOLEAN --- Boolean directive to provide field level info
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dep}} ||| TABLE ( DiscreteField ) --- data set of dependent variables
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{indep}} ||| TABLE ( NumericField ) --- data set of independent variables
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 dependent\_fields , UNSIGNED4 dependent\_records , UNSIGNED4 independent\_fields , UNSIGNED4 independent\_records , UNSIGNED4 dependent\_count , UNSIGNED4 independent\_count , TABLE ( Field\_Desc ) dependent\_stats , TABLE ( Field\_Desc ) independent\_stats \} )} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURNS}}}] a data set of information on each work item
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Deviance_Analysis.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Deviance_Analysis.ecl.tex
new file mode 100644
index 0000000..3e7420c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Deviance_Analysis.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Deviance_Analysis
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Deviance_Analysis}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Deviance\_Analysis}}
+
+\hypertarget{ecldoc:logisticregression.deviance_analysis}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.AOD\_Record)} & \textbf{Deviance\_Analysis} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.Deviance\_Record) proposed, DATASET(Types.Deviance\_Record) base)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Compare deviance information for an analysis of deviance.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{proposed}} ||| TABLE ( Deviance\_Record ) --- the proposed model
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{base}} ||| TABLE ( Deviance\_Record ) --- the base model for comparison
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 residual\_df , UNSIGNED8 df , REAL8 residual\_dev , REAL8 deviance , REAL8 p\_value \} )} --- the comparison of the deviance between the models
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Deviance_Detail.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Deviance_Detail.ecl.tex
new file mode 100644
index 0000000..ae3966c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Deviance_Detail.ecl.tex
@@ -0,0 +1,68 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Deviance_Detail
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Deviance_Detail}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Deviance\_Detail}}
+
+\hypertarget{ecldoc:logisticregression.deviance_detail}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Observation\_Deviance)} & \textbf{Deviance\_Detail} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Core\_Types.DiscreteField) dependents, DATASET(Types.Raw\_Prediction) predicts)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Detail deviance for each observation.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{predicts}} ||| TABLE ( Raw\_Prediction ) --- the predicted values of the response variable
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dependents}} ||| TABLE ( DiscreteField ) --- original dependent records for the model
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 classifier , INTEGER4 actual , INTEGER4 predicted , REAL8 mod\_ll , REAL8 mod\_dev\_component , REAL8 mod\_dev\_residual , REAL8 nil\_ll , REAL8 nil\_dev\_component , REAL8 nil\_dev\_residual \} )} --- the deviance information by observation and the log likelihood of the predicted result.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Distributions.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Distributions.ecl.tex
new file mode 100644
index 0000000..7bba52b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Distributions.ecl.tex
@@ -0,0 +1,392 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Distributions
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Distributions}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Constants |
+ML\_Core.Math |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Distributions}}
+
+\hypertarget{ecldoc:LogisticRegression.Distributions}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Distributions} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:logisticregression.distributions.normal_cdf}{Normal\_CDF}
+: Cumulative Distribution of the standard normal distribution, the probability that a normal random variable will be smaller than x standard deviations above or below the mean
+\item \hyperlink{ecldoc:logisticregression.distributions.normal_ppf}{Normal\_PPF}
+: Normal Distribution Percentage Point Function
+\item \hyperlink{ecldoc:logisticregression.distributions.t_cdf}{T\_CDF}
+: Students t distribution integral evaluated between negative infinity and x
+\item \hyperlink{ecldoc:logisticregression.distributions.t_ppf}{T\_PPF}
+: Percentage point function for the T distribution
+\item \hyperlink{ecldoc:logisticregression.distributions.chi2_cdf}{Chi2\_CDF}
+: The cumulative distribution function for the Chi Square distribution
+\item \hyperlink{ecldoc:logisticregression.distributions.chi2_ppf}{Chi2\_PPF}
+: The Chi Squared PPF function
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Normal\_CDF}}
+
+\hypertarget{ecldoc:logisticregression.distributions.normal_cdf}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Normal\_CDF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Cumulative Distribution of the standard normal distribution, the probability that a normal random variable will be smaller than x standard deviations above or below the mean. Taken from C/C++ Mathematical Algorithms for Scientists and Engineers, n. Shammas, McGraw-Hill, 1995
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the number of standard deviations
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURNS}}}] probability of exceeding x.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Normal\_PPF}}
+
+\hypertarget{ecldoc:logisticregression.distributions.normal_ppf}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Normal\_PPF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Normal Distribution Percentage Point Function. Translated from C/C++ Mathematical Algorithms for Scientists and Engineers, N. Shammas, McGraw-Hill, 1995
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- probability
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURNS}}}] number of standard deviations from the mean
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+T\_CDF}}
+
+\hypertarget{ecldoc:logisticregression.distributions.t_cdf}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{T\_CDF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Students t distribution integral evaluated between negative infinity and x. Translated from NIST SEL DATAPAC Fortran TCDF.f source
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- degrees of freedom
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- value of the evaluation
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURNS}}}] the probability that a value will be less than the specified value
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+T\_PPF}}
+
+\hypertarget{ecldoc:logisticregression.distributions.t_ppf}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{T\_PPF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Percentage point function for the T distribution. Translated from NIST SEL DATAPAC Fortran TPPF.f source
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Chi2\_CDF}}
+
+\hypertarget{ecldoc:logisticregression.distributions.chi2_cdf}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Chi2\_CDF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+The cumulative distribution function for the Chi Square distribution. the CDF for the specfied degrees of freedom. Translated from the NIST SEL DATAPAC Fortran subroutine CHSCDF.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Chi2\_PPF}}
+
+\hypertarget{ecldoc:logisticregression.distributions.chi2_ppf}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Chi2\_PPF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+The Chi Squared PPF function. Translated from the NIST SEL DATAPAC Fortran subroutine CHSPPF.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta.ecl.tex
new file mode 100644
index 0000000..7b4feda
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+ExtractBeta
+}
+\hypertarget{ecldoc:toc:LogisticRegression.ExtractBeta}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+ExtractBeta}}
+
+\hypertarget{ecldoc:logisticregression.extractbeta}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{ExtractBeta} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Core\_Types.Layout\_Model) mod\_ds)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Extract the beta values form the model dataset.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{mod\_ds}} ||| TABLE ( Layout\_Model ) --- the model dataset
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 ind\_col , UNSIGNED4 dep\_nom , REAL8 w , REAL8 SE \} )} --- a beta values as Model Coefficient records, zero as the constant term.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta_CI.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta_CI.ecl.tex
new file mode 100644
index 0000000..a07e704
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta_CI.ecl.tex
@@ -0,0 +1,67 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+ExtractBeta_CI
+}
+\hypertarget{ecldoc:toc:LogisticRegression.ExtractBeta_CI}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+ExtractBeta\_CI}}
+
+\hypertarget{ecldoc:logisticregression.extractbeta_ci}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Confidence\_Model\_Coef)} & \textbf{ExtractBeta\_CI} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Core\_Types.Layout\_Model) mod\_ds, REAL8 level)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Extract the beta values form the model dataset.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{level}} ||| REAL8 --- the significance value for the intervals
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{mod\_ds}} ||| TABLE ( Layout\_Model ) --- the model dataset
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 ind\_col , UNSIGNED4 dep\_nom , REAL8 w , REAL8 SE , REAL8 upper , REAL8 lower \} )} --- the beta values with confidence intervals term.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta_pval.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta_pval.ecl.tex
new file mode 100644
index 0000000..311f2d0
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractBeta_pval.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+ExtractBeta_pval
+}
+\hypertarget{ecldoc:toc:LogisticRegression.ExtractBeta_pval}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+ExtractBeta\_pval}}
+
+\hypertarget{ecldoc:logisticregression.extractbeta_pval}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.pval\_Model\_Coef)} & \textbf{ExtractBeta\_pval} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Core\_Types.Layout\_Model) mod\_ds)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Extract the beta values form the model dataset.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{mod\_ds}} ||| TABLE ( Layout\_Model ) --- the model dataset
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 ind\_col , UNSIGNED4 dep\_nom , REAL8 w , REAL8 SE , REAL8 z , REAL8 p\_value \} )} --- the beta values with p-values as Model Coefficient records, zero as the constant term.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractReport.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractReport.ecl.tex
new file mode 100644
index 0000000..2ba3f12
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/ExtractReport.ecl.tex
@@ -0,0 +1,67 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+ExtractReport
+}
+\hypertarget{ecldoc:toc:LogisticRegression.ExtractReport}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+LogisticRegression.Constants |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+ExtractReport}}
+
+\hypertarget{ecldoc:logisticregression.extractreport}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Model\_Report)} & \textbf{ExtractReport} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Core\_Types.Layout\_Model) mod\_ds)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Extract Report records from model
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{mod\_ds}} ||| TABLE ( Layout\_Model ) --- the model dataset
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 max\_iterations , REAL8 epsilon , UNSIGNED4 dep\_vars , UNSIGNED4 ind\_vars , UNSIGNED8 obs , UNSIGNED2 builder , TABLE ( Classifier\_Stats ) stats \} )} --- the model report dataset
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel.ecl.tex
new file mode 100644
index 0000000..4ca3f90
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel.ecl.tex
@@ -0,0 +1,74 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large IRLS\slash\hspace{0pt}}
+ \\
+GetModel
+}
+\hypertarget{ecldoc:toc:LogisticRegression.IRLS.GetModel}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/IRLS}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Constants |
+LogisticRegression.Types |
+logisticregression.irls |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+GetModel}}
+
+\hypertarget{ecldoc:logisticregression.irls.getmodel}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Model)} & \textbf{GetModel} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) independents, DATASET(DiscreteField) dependents, UNSIGNED max\_iter=200, REAL8 epsilon=Constants.default\_epsilon, REAL8 ridge=Constants.default\_ridge)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Generate logistic regression model from training data. The size of the inputs is used to determin which work items are processed with purely local operations (the data is moved once as necessary) or with global operations supporting a work item to use multiple nodes.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dependents}} ||| TABLE ( DiscreteField ) --- the dependent values.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{ridge}} ||| REAL8 --- a value to pupulate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{epsilon}} ||| REAL8 --- the minimum change in the Beta value estimate to continue
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{independents}} ||| TABLE ( NumericField ) --- the independent values
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{max\_iter}} ||| UNSIGNED8 --- maximum number of iterations to try
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- coefficient matrix plus model building stats
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel_global.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel_global.ecl.tex
new file mode 100644
index 0000000..ed9ae3f
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel_global.ecl.tex
@@ -0,0 +1,75 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large IRLS\slash\hspace{0pt}}
+ \\
+GetModel_global
+}
+\hypertarget{ecldoc:toc:LogisticRegression.IRLS.GetModel_global}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/IRLS}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+PBblas |
+PBblas.Types |
+LogisticRegression |
+LogisticRegression.Constants |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+GetModel\_global}}
+
+\hypertarget{ecldoc:logisticregression.irls.getmodel_global}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Model)} & \textbf{GetModel\_global} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) independents, DATASET(DiscreteField) dependents, UNSIGNED max\_iter=200, REAL8 epsilon=Constants.default\_epsilon, REAL8 ridge=Constants.default\_ridge)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Internal function to determine values for the model coefficients and selected statistics from building the model.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dependents}} ||| TABLE ( DiscreteField ) --- the dependent values
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{ridge}} ||| REAL8 --- a value to pupulate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{epsilon}} ||| REAL8 --- the minimum change in the Beta value estimate to continue
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{independents}} ||| TABLE ( NumericField ) --- the independent values
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{max\_iter}} ||| UNSIGNED8 --- maximum number of iterations to try
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- coefficient matrix plus model building statistics
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel_local.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel_local.ecl.tex
new file mode 100644
index 0000000..05c287b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/GetModel_local.ecl.tex
@@ -0,0 +1,76 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large IRLS\slash\hspace{0pt}}
+ \\
+GetModel_local
+}
+\hypertarget{ecldoc:toc:LogisticRegression.IRLS.GetModel_local}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/IRLS}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Constants |
+LogisticRegression.Types |
+LogisticRegression.IRLS |
+std |
+std.blas |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+GetModel\_local}}
+
+\hypertarget{ecldoc:logisticregression.irls.getmodel_local}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Model)} & \textbf{GetModel\_local} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) independents, DATASET(DiscreteField) dependents, UNSIGNED2 max\_iter=200, REAL8 epsilon=Constants.default\_epsilon, REAL8 ridge=Constants.default\_ridge)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Internal function to determine values for the model co-efficients and selected stats from building the model.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dependents}} ||| TABLE ( DiscreteField ) --- the dependent values.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{ridge}} ||| REAL8 --- a value to populate a diagonal matrix that is added to a matrix help assure that the matrix is invertible.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{epsilon}} ||| REAL8 --- the minimum change in the Beta value estimate to continue
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{independents}} ||| TABLE ( NumericField ) --- the independent values
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{max\_iter}} ||| UNSIGNED2 --- maximum number of iterations to try
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- coefficient matrix plus model building stats
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.log
new file mode 100644
index 0000000..d8db362
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.log
@@ -0,0 +1,469 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/LogisticRegression/IRLS/index.tex
+(./root/LogisticRegression/IRLS/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/LogisticRegression/IRLS/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/LogisticRegression/IRLS/index.out)
+(root/LogisticRegression/IRLS/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/LogisticRegression/IRLS/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--19
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 19
+ []
+
+(./root/LogisticRegression/IRLS/GetModel.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+ (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd) [2
+
+])
+(./root/LogisticRegression/IRLS/GetModel_global.ecl.tex [3] [4
+
+])
+(./root/LogisticRegression/IRLS/GetModel_local.ecl.tex [5] [6
+
+]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [7]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/LogisticRegression/IRLS/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6576 strings out of 494945
+ 95366 string characters out of 6181032
+ 184308 words of memory out of 5000000
+ 9768 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,414b,379s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/LogisticRegression/IRLS/index.pdf (7 pages, 114701 bytes
+).
+PDF statistics:
+ 80 PDF objects out of 1000 (max. 8388607)
+ 66 compressed objects within 1 object stream
+ 21 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.pdf
new file mode 100644
index 0000000..ea5f3b0
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.tex
new file mode 100644
index 0000000..923ac11
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/LogisticRegression/IRLS/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/pkg.tmp.tex
new file mode 100644
index 0000000..144a9e3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/pkg.tmp.tex
@@ -0,0 +1,24 @@
+\chapter*{\color{headtoc} IRLS}
+\hypertarget{ecldoc:toc:root/LogisticRegression/IRLS}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.IRLS.GetModel}{GetModel.ecl} \\
+Generate logistic regression model from training data \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.IRLS.GetModel_global}{GetModel\_global.ecl} \\
+Internal function to determine values for the model coefficients and selected statistics from building the model \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.IRLS.GetModel_local}{GetModel\_local.ecl} \\
+Internal function to determine values for the model co-efficients and selected stats from building the model \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/IRLS/GetModel.ecl}
+\input{root/LogisticRegression/IRLS/GetModel_global.ecl}
+\input{root/LogisticRegression/IRLS/GetModel_local.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/pkg.toc.tex
new file mode 100644
index 0000000..e047da9
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/IRLS/pkg.toc.tex
@@ -0,0 +1,24 @@
+\chapter*{\color{headtoc} IRLS}
+\hypertarget{ecldoc:toc:root/LogisticRegression/IRLS}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.IRLS.GetModel}{GetModel.ecl} \\
+Generate logistic regression model from training data \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.IRLS.GetModel_global}{GetModel\_global.ecl} \\
+Internal function to determine values for the model coefficients and selected statistics from building the model \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.IRLS.GetModel_local}{GetModel\_local.ecl} \\
+Internal function to determine values for the model co-efficients and selected stats from building the model \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/IRLS/GetModel.ecl}
+\input{root/LogisticRegression/IRLS/GetModel_global.ecl}
+\input{root/LogisticRegression/IRLS/GetModel_local.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/LogitPredict.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/LogitPredict.ecl.tex
new file mode 100644
index 0000000..b623a4c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/LogitPredict.ecl.tex
@@ -0,0 +1,67 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+LogitPredict
+}
+\hypertarget{ecldoc:toc:LogisticRegression.LogitPredict}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+LogitPredict}}
+
+\hypertarget{ecldoc:logisticregression.logitpredict}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Classify\_Result)} & \textbf{LogitPredict} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Model\_Coef) coef, DATASET(NumericField) independents)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Predict the category values with the logit function and the the supplied beta coefficients.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{coef}} ||| TABLE ( Model\_Coef ) --- the model beta coefficients
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{independents}} ||| TABLE ( NumericField ) --- the observations
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , INTEGER4 value , REAL8 conf \} )} --- the predicted category values and a confidence score
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/LogitScore.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/LogitScore.ecl.tex
new file mode 100644
index 0000000..d085aba
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/LogitScore.ecl.tex
@@ -0,0 +1,67 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+LogitScore
+}
+\hypertarget{ecldoc:toc:LogisticRegression.LogitScore}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+LogitScore}}
+
+\hypertarget{ecldoc:logisticregression.logitscore}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Raw\_Prediction)} & \textbf{LogitScore} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Model\_Coef) coef, DATASET(NumericField) independents)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Calculate the score using the logit function and the the supplied beta coefficients.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{coef}} ||| TABLE ( Model\_Coef ) --- the model beta coefficients
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{independents}} ||| TABLE ( NumericField ) --- the observations
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 raw \} )} --- the raw prediction value
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Model_Deviance.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Model_Deviance.ecl.tex
new file mode 100644
index 0000000..40b35fe
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Model_Deviance.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Model_Deviance
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Model_Deviance}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Model\_Deviance}}
+
+\hypertarget{ecldoc:logisticregression.model_deviance}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Deviance\_Record)} & \textbf{Model\_Deviance} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.Observation\_Deviance) od, DATASET(Types.Model\_Coef) mod)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Model Deviance.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{od}} ||| TABLE ( Observation\_Deviance ) --- observation deviance record
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{mod}} ||| TABLE ( Model\_Coef ) --- model co-efficients
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 df , REAL8 deviance , REAL8 AIC \} )} --- model deviance
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Null_Deviance.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Null_Deviance.ecl.tex
new file mode 100644
index 0000000..9295dd2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Null_Deviance.ecl.tex
@@ -0,0 +1,65 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Null_Deviance
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Null_Deviance}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+LogisticRegression |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Null\_Deviance}}
+
+\hypertarget{ecldoc:logisticregression.null_deviance}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Deviance\_Record)} & \textbf{Null\_Deviance} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.Observation\_Deviance) od)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Deviance for the null model, that is, a model with only an intercept.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{od}} ||| TABLE ( Observation\_Deviance ) --- Observation Deviance record set.
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 classifier , UNSIGNED8 df , REAL8 deviance , REAL8 AIC \} )} --- a data set of the null model deviances for each work item and classifier.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/Check_Dist.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/Check_Dist.ecl.tex
new file mode 100644
index 0000000..2dcc02a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/Check_Dist.ecl.tex
@@ -0,0 +1,56 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+Check_Dist
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Tests.Check_Dist}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+LogisticRegression.Distributions |
+ML\_Core |
+python |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Check\_Dist}}
+
+\hypertarget{ecldoc:logisticregression.tests.check_dist}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Check\_Dist} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.log
new file mode 100644
index 0000000..3e14740
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.log
@@ -0,0 +1,462 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/LogisticRegression/Tests/index.tex
+(./root/LogisticRegression/Tests/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/LogisticRegression/Tests/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/LogisticRegression/Tests/index.out)
+(root/LogisticRegression/Tests/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/LogisticRegression/Tests/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--12
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 12
+ []
+
+(./root/LogisticRegression/Tests/Check_Dist.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+ (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [2
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/LogisticRegression/Tests/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6557 strings out of 494945
+ 94882 string characters out of 6181032
+ 182308 words of memory out of 5000000
+ 9768 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,316b,312s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/LogisticRegression/Tests/index.pdf (2 pages, 75206 bytes
+).
+PDF statistics:
+ 42 PDF objects out of 1000 (max. 8388607)
+ 34 compressed objects within 1 object stream
+ 10 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.pdf
new file mode 100644
index 0000000..fe10d7b
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.tex
new file mode 100644
index 0000000..815b85a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/LogisticRegression/Tests/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/pkg.tmp.tex
new file mode 100644
index 0000000..9f674b3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/pkg.tmp.tex
@@ -0,0 +1,15 @@
+\chapter*{\color{headtoc} Tests}
+\hypertarget{ecldoc:toc:root/LogisticRegression/Tests}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Tests.Check_Dist}{Check\_Dist.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/Tests/Check_Dist.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/pkg.toc.tex
new file mode 100644
index 0000000..4c48f74
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Tests/pkg.toc.tex
@@ -0,0 +1,15 @@
+\chapter*{\color{headtoc} Tests}
+\hypertarget{ecldoc:toc:root/LogisticRegression/Tests}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Tests.Check_Dist}{Check\_Dist.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/Tests/Check_Dist.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Types.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Types.ecl.tex
new file mode 100644
index 0000000..5e8b5b3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/Types.ecl.tex
@@ -0,0 +1,781 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+Types
+}
+\hypertarget{ecldoc:toc:LogisticRegression.Types}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Types}}
+
+\hypertarget{ecldoc:LogisticRegression.Types}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Types} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:logisticregression.types.t_universe}{t\_Universe}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.field_desc}{Field\_Desc}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.data_info}{Data\_Info}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.numericfield_u}{NumericField\_U}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.discretefield_u}{DiscreteField\_U}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.layout_column_map}{Layout\_Column\_Map}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.classifier_stats}{Classifier\_Stats}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.model_report}{Model\_Report}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.binomial_confusion_summary}{Binomial\_Confusion\_Summary}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.model_coef}{Model\_Coef}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.confidence_model_coef}{Confidence\_Model\_Coef}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.pval_model_coef}{pval\_Model\_Coef}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.raw_prediction}{Raw\_Prediction}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.observation_deviance}{Observation\_Deviance}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.deviance_record}{Deviance\_Record}
+: No Documentation Found
+\item \hyperlink{ecldoc:logisticregression.types.aod_record}{AOD\_Record}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_Universe}}
+
+\hypertarget{ecldoc:logisticregression.types.t_universe}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_Universe} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED1} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Field\_Desc}}
+
+\hypertarget{ecldoc:logisticregression.types.field_desc}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Field\_Desc} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{min\_value}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{max\_value}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{cardinality}} ||| UNSIGNED4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Data\_Info}}
+
+\hypertarget{ecldoc:logisticregression.types.data_info}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Data\_Info} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{independent\_fields}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dependent\_fields}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dependent\_records}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{independent\_stats}} ||| TABLE ( Field\_Desc ) --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{independent\_records}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dependent\_stats}} ||| TABLE ( Field\_Desc ) --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dependent\_count}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{independent\_count}} ||| UNSIGNED4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+NumericField\_U}}
+
+\hypertarget{ecldoc:logisticregression.types.numericfield_u}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{NumericField\_U} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{u}} ||| UNSIGNED1 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+DiscreteField\_U}}
+
+\hypertarget{ecldoc:logisticregression.types.discretefield_u}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{DiscreteField\_U} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{u}} ||| UNSIGNED1 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Layout\_Column\_Map}}
+
+\hypertarget{ecldoc:logisticregression.types.layout_column_map}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Layout\_Column\_Map} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{remap\_number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{orig\_number}} ||| UNSIGNED4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Classifier\_Stats}}
+
+\hypertarget{ecldoc:logisticregression.types.classifier_stats}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Classifier\_Stats} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{correct}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{column}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{incorrect}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{iterations}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{max\_delta}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Model\_Report}}
+
+\hypertarget{ecldoc:logisticregression.types.model_report}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Model\_Report} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{max\_iterations}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dep\_vars}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{ind\_vars}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{stats}} ||| TABLE ( Classifier\_Stats ) --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{obs}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{epsilon}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{builder}} ||| UNSIGNED2 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Binomial\_Confusion\_Summary}}
+
+\hypertarget{ecldoc:logisticregression.types.binomial_confusion_summary}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Binomial\_Confusion\_Summary} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{false\_negative}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{cond\_neg}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{false\_omit\_rate}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{false\_pos\_rate}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{cond\_pos}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{true\_pos\_rate}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{false\_positive}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{pred\_pos}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{neg\_pred\_val}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{pos\_pred\_val}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{true\_neg\_rate}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{true\_positive}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{accuracy}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{false\_disc\_rate}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{true\_negative}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{false\_neg\_rate}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{prevalence}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{classifier}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{pred\_neg}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Model\_Coef}}
+
+\hypertarget{ecldoc:logisticregression.types.model_coef}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Model\_Coef} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dep\_nom}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{w}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{se}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{ind\_col}} ||| UNSIGNED4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Confidence\_Model\_Coef}}
+
+\hypertarget{ecldoc:logisticregression.types.confidence_model_coef}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Confidence\_Model\_Coef} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{lower}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{upper}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{ind\_col}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dep\_nom}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{w}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{se}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+pval\_Model\_Coef}}
+
+\hypertarget{ecldoc:logisticregression.types.pval_model_coef}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{pval\_Model\_Coef} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{p\_value}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{z}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{ind\_col}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{dep\_nom}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{w}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{se}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Raw\_Prediction}}
+
+\hypertarget{ecldoc:logisticregression.types.raw_prediction}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Raw\_Prediction} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{raw}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Observation\_Deviance}}
+
+\hypertarget{ecldoc:logisticregression.types.observation_deviance}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Observation\_Deviance} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{predicted}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{nil\_dev\_residual}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{mod\_ll}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{actual}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{nil\_dev\_component}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{mod\_dev\_residual}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{mod\_dev\_component}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{nil\_ll}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{classifier}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Deviance\_Record}}
+
+\hypertarget{ecldoc:logisticregression.types.deviance_record}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Deviance\_Record} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{deviance}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{df}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{aic}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{classifier}} ||| UNSIGNED4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+AOD\_Record}}
+
+\hypertarget{ecldoc:logisticregression.types.aod_record}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{AOD\_Record} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{residual\_df}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{deviance}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{residual\_dev}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{p\_value}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{df}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{classifier}} ||| UNSIGNED4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/dimm.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/dimm.ecl.tex
new file mode 100644
index 0000000..b17b345
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/dimm.ecl.tex
@@ -0,0 +1,76 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+ \\
+dimm
+}
+\hypertarget{ecldoc:toc:LogisticRegression.dimm}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+std.blas |
+std.BLAS.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+dimm}}
+
+\hypertarget{ecldoc:logisticregression.dimm}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} Types.matrix\_t} & \textbf{dimm} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (BOOLEAN transposeA, BOOLEAN transposeB, BOOLEAN diagonalA, BOOLEAN diagonalB, Types.dimension\_t m, Types.dimension\_t n, Types.dimension\_t k, Types.value\_t alpha, Types.matrix\_t A, Types.matrix\_t B, Types.value\_t beta=0.0, Types.matrix\_t C=[])}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Matrix multiply when either A or B is a diagonal and is passed as a vector. alpha*op(A) op(B) + beta*C where op() is transpose
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{diagonalB}} ||| BOOLEAN --- true when B is the diagonal matrix
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{m}} ||| UNSIGNED4 --- number of rows in product
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{alpha}} ||| REAL8 --- scalar used on A
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{k}} ||| UNSIGNED4 --- number of columns/rows for the multiplier/multiplicand
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{C}} ||| SET ( REAL8 ) --- matrix C or empty
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{diagonalA}} ||| BOOLEAN --- true when A is the diagonal matrix
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{B}} ||| SET ( REAL8 ) --- matrix B
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{n}} ||| UNSIGNED4 --- number of columns in product
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{beta}} ||| REAL8 --- scalar for matrix C
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{A}} ||| SET ( REAL8 ) --- matrix A
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{transposeA}} ||| BOOLEAN --- true when transpose of A is used
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{transposeB}} ||| BOOLEAN --- true when transpose of B is used
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{SET ( REAL8 )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.log
new file mode 100644
index 0000000..b247cab
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.log
@@ -0,0 +1,497 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/LogisticRegression/index.tex
+(./root/LogisticRegression/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/LogisticRegression/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+ (/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/LogisticRegression/index.out) (root/LogisticRegression/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/LogisticRegression/pkg.tmp.tex (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+) (/usr/share/texmf/tex/latex/lm/omllmm.fd)
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd)
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)
+Overfull \hbox (12.79999pt too wide) in alignment at lines 43--75
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 75
+ []
+
+
+Overfull \hbox (12.79999pt too wide) in alignment at lines 75--96
+ []
+ []
+
+[1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+(./root/LogisticRegression/BinomialConfusion.ecl.tex [2]
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 9.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 9.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 9.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+))
+(./root/LogisticRegression/BinomialLogisticRegression.ecl.tex [3
+
+] [4
+
+] [5])
+(./root/LogisticRegression/Confusion.ecl.tex [6])
+(./root/LogisticRegression/Constants.ecl.tex [7
+
+] [8
+
+] [9] [10] [11] [12]
+[13] [14] [15]) (./root/LogisticRegression/DataStats.ecl.tex [16] [17
+
+])
+(./root/LogisticRegression/Deviance_Analysis.ecl.tex [18])
+(./root/LogisticRegression/Deviance_Detail.ecl.tex [19
+
+])
+(./root/LogisticRegression/dimm.ecl.tex [20
+
+] [21
+
+])
+(./root/LogisticRegression/Distributions.ecl.tex [22] [23
+
+] [24] [25])
+(./root/LogisticRegression/ExtractBeta.ecl.tex [26])
+(./root/LogisticRegression/ExtractBeta_CI.ecl.tex [27
+
+])
+(./root/LogisticRegression/ExtractBeta_pval.ecl.tex [28
+
+])
+(./root/LogisticRegression/ExtractReport.ecl.tex [29
+
+])
+(./root/LogisticRegression/LogitPredict.ecl.tex [30
+
+])
+(./root/LogisticRegression/LogitScore.ecl.tex [31
+
+])
+(./root/LogisticRegression/Model_Deviance.ecl.tex [32
+
+])
+(./root/LogisticRegression/Null_Deviance.ecl.tex [33
+
+])
+(./root/LogisticRegression/Types.ecl.tex [34
+
+] [35
+
+] [36] [37] [38] [39] [40]
+[41] [42] [43]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [44]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+ (root/LogisticRegression/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6813 strings out of 494945
+ 101271 string characters out of 6181032
+ 190308 words of memory out of 5000000
+ 9769 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,10n,36p,756b,422s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/LogisticRegression/index.pdf (44 pages, 177473 bytes).
+PDF statistics:
+ 541 PDF objects out of 1000 (max. 8388607)
+ 484 compressed objects within 5 object streams
+ 197 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.pdf
new file mode 100644
index 0000000..4b319dd
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.tex
new file mode 100644
index 0000000..0d10d56
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/LogisticRegression/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/RunBinomial.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/RunBinomial.ecl.tex
new file mode 100644
index 0000000..07c9f69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/RunBinomial.ecl.tex
@@ -0,0 +1,55 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large performance\slash\hspace{0pt}}
+ \\
+RunBinomial
+}
+\hypertarget{ecldoc:toc:LogisticRegression.performance.RunBinomial}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/performance}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+logisticregression |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RunBinomial}}
+
+\hypertarget{ecldoc:logisticregression.performance.runbinomial}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RunBinomial} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.log
new file mode 100644
index 0000000..cce8d75
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.log
@@ -0,0 +1,462 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/LogisticRegression/performance/index.tex
+(./root/LogisticRegression/performance/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/LogisticRegression/performance/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/LogisticRegression/performance/index.out)
+(root/LogisticRegression/performance/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/LogisticRegression/performance/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--12
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 12
+ []
+
+(./root/LogisticRegression/performance/RunBinomial.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+ (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [2
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/LogisticRegression/performance/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6557 strings out of 494945
+ 95008 string characters out of 6181032
+ 182308 words of memory out of 5000000
+ 9768 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,335b,312s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/LogisticRegression/performance/index.pdf (2 pages, 74998
+ bytes).
+PDF statistics:
+ 42 PDF objects out of 1000 (max. 8388607)
+ 34 compressed objects within 1 object stream
+ 10 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.pdf
new file mode 100644
index 0000000..1e6a911
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.tex
new file mode 100644
index 0000000..2aad8d7
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/LogisticRegression/performance/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/pkg.tmp.tex
new file mode 100644
index 0000000..62ccb52
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/pkg.tmp.tex
@@ -0,0 +1,15 @@
+\chapter*{\color{headtoc} performance}
+\hypertarget{ecldoc:toc:root/LogisticRegression/performance}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.performance.RunBinomial}{RunBinomial.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/performance/RunBinomial.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/pkg.toc.tex
new file mode 100644
index 0000000..fec1097
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/performance/pkg.toc.tex
@@ -0,0 +1,15 @@
+\chapter*{\color{headtoc} performance}
+\hypertarget{ecldoc:toc:root/LogisticRegression/performance}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.performance.RunBinomial}{RunBinomial.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/performance/RunBinomial.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/pkg.tmp.tex
new file mode 100644
index 0000000..4df3d25
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/pkg.tmp.tex
@@ -0,0 +1,116 @@
+\chapter*{\color{headtoc} LogisticRegression}
+\hypertarget{ecldoc:toc:root/LogisticRegression}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+LogisticRegression
+ \\
+\hline
+Version &
+1.0.0
+ \\
+\hline
+Description &
+Logistic Regression implementation
+ \\
+\hline
+License &
+\url{http://www.apache.org/licenses/LICENSE-2.0}
+ \\
+\hline
+Copyright &
+Copyright (C) 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+DependsOn &
+ML\_Core, PBblas
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.BinomialConfusion}{BinomialConfusion.ecl} \\
+Binomial confusion matrix \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.BinomialLogisticRegression}{BinomialLogisticRegression.ecl} \\
+Binomial logistic regression using iteratively re-weighted least squares \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Confusion}{Confusion.ecl} \\
+Detail confusion records to compare actual versus predicted response variable values \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Constants}{Constants.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.DataStats}{DataStats.ecl} \\
+Information about the datasets \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Deviance_Analysis}{Deviance\_Analysis.ecl} \\
+Compare deviance information for an analysis of deviance \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Deviance_Detail}{Deviance\_Detail.ecl} \\
+Detail deviance for each observation \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.dimm}{dimm.ecl} \\
+Matrix multiply when either A or B is a diagonal and is passed as a vector \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Distributions}{Distributions.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractBeta}{ExtractBeta.ecl} \\
+Extract the beta values form the model dataset \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractBeta_CI}{ExtractBeta\_CI.ecl} \\
+Extract the beta values form the model dataset \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractBeta_pval}{ExtractBeta\_pval.ecl} \\
+Extract the beta values form the model dataset \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractReport}{ExtractReport.ecl} \\
+Extract Report records from model \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.LogitPredict}{LogitPredict.ecl} \\
+Predict the category values with the logit function and the the supplied beta coefficients \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.LogitScore}{LogitScore.ecl} \\
+Calculate the score using the logit function and the the supplied beta coefficients \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Model_Deviance}{Model\_Deviance.ecl} \\
+Model Deviance \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Null_Deviance}{Null\_Deviance.ecl} \\
+Deviance for the null model, that is, a model with only an intercept \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Types}{Types.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/BinomialConfusion.ecl}
+\input{root/LogisticRegression/BinomialLogisticRegression.ecl}
+\input{root/LogisticRegression/Confusion.ecl}
+\input{root/LogisticRegression/Constants.ecl}
+\input{root/LogisticRegression/DataStats.ecl}
+\input{root/LogisticRegression/Deviance_Analysis.ecl}
+\input{root/LogisticRegression/Deviance_Detail.ecl}
+\input{root/LogisticRegression/dimm.ecl}
+\input{root/LogisticRegression/Distributions.ecl}
+\input{root/LogisticRegression/ExtractBeta.ecl}
+\input{root/LogisticRegression/ExtractBeta_CI.ecl}
+\input{root/LogisticRegression/ExtractBeta_pval.ecl}
+\input{root/LogisticRegression/ExtractReport.ecl}
+\input{root/LogisticRegression/LogitPredict.ecl}
+\input{root/LogisticRegression/LogitScore.ecl}
+\input{root/LogisticRegression/Model_Deviance.ecl}
+\input{root/LogisticRegression/Null_Deviance.ecl}
+\input{root/LogisticRegression/Types.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/pkg.toc.tex
new file mode 100644
index 0000000..77fc10c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/pkg.toc.tex
@@ -0,0 +1,128 @@
+\chapter*{\color{headtoc} LogisticRegression}
+\hypertarget{ecldoc:toc:root/LogisticRegression}{}
+\hyperlink{ecldoc:toc:root}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+LogisticRegression
+ \\
+\hline
+Version &
+1.0.0
+ \\
+\hline
+Description &
+Logistic Regression implementation
+ \\
+\hline
+License &
+\url{http://www.apache.org/licenses/LICENSE-2.0}
+ \\
+\hline
+Copyright &
+Copyright (C) 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+DependsOn &
+ML\_Core, PBblas
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.BinomialConfusion}{BinomialConfusion.ecl} \\
+Binomial confusion matrix \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.BinomialLogisticRegression}{BinomialLogisticRegression.ecl} \\
+Binomial logistic regression using iteratively re-weighted least squares \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Confusion}{Confusion.ecl} \\
+Detail confusion records to compare actual versus predicted response variable values \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Constants}{Constants.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.DataStats}{DataStats.ecl} \\
+Information about the datasets \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Deviance_Analysis}{Deviance\_Analysis.ecl} \\
+Compare deviance information for an analysis of deviance \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Deviance_Detail}{Deviance\_Detail.ecl} \\
+Detail deviance for each observation \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.dimm}{dimm.ecl} \\
+Matrix multiply when either A or B is a diagonal and is passed as a vector \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Distributions}{Distributions.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractBeta}{ExtractBeta.ecl} \\
+Extract the beta values form the model dataset \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractBeta_CI}{ExtractBeta\_CI.ecl} \\
+Extract the beta values form the model dataset \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractBeta_pval}{ExtractBeta\_pval.ecl} \\
+Extract the beta values form the model dataset \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.ExtractReport}{ExtractReport.ecl} \\
+Extract Report records from model \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.LogitPredict}{LogitPredict.ecl} \\
+Predict the category values with the logit function and the the supplied beta coefficients \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.LogitScore}{LogitScore.ecl} \\
+Calculate the score using the logit function and the the supplied beta coefficients \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Model_Deviance}{Model\_Deviance.ecl} \\
+Model Deviance \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Null_Deviance}{Null\_Deviance.ecl} \\
+Deviance for the null model, that is, a model with only an intercept \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.Types}{Types.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:root/LogisticRegression/IRLS}{IRLS} \\
+\hline
+\hyperlink{ecldoc:toc:root/LogisticRegression/performance}{performance} \\
+\hline
+\hyperlink{ecldoc:toc:root/LogisticRegression/Tests}{Tests} \\
+\hline
+\hyperlink{ecldoc:toc:root/LogisticRegression/validation}{validation} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/BinomialConfusion.ecl}
+\input{root/LogisticRegression/BinomialLogisticRegression.ecl}
+\input{root/LogisticRegression/Confusion.ecl}
+\input{root/LogisticRegression/Constants.ecl}
+\input{root/LogisticRegression/DataStats.ecl}
+\input{root/LogisticRegression/Deviance_Analysis.ecl}
+\input{root/LogisticRegression/Deviance_Detail.ecl}
+\input{root/LogisticRegression/dimm.ecl}
+\input{root/LogisticRegression/Distributions.ecl}
+\input{root/LogisticRegression/ExtractBeta.ecl}
+\input{root/LogisticRegression/ExtractBeta_CI.ecl}
+\input{root/LogisticRegression/ExtractBeta_pval.ecl}
+\input{root/LogisticRegression/ExtractReport.ecl}
+\input{root/LogisticRegression/LogitPredict.ecl}
+\input{root/LogisticRegression/LogitScore.ecl}
+\input{root/LogisticRegression/Model_Deviance.ecl}
+\input{root/LogisticRegression/Null_Deviance.ecl}
+\input{root/LogisticRegression/Types.ecl}
+\input{root/LogisticRegression/IRLS/pkg.toc}
+\input{root/LogisticRegression/performance/pkg.toc}
+\input{root/LogisticRegression/Tests/pkg.toc}
+\input{root/LogisticRegression/validation/pkg.toc}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/BinomialRegression.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/BinomialRegression.ecl.tex
new file mode 100644
index 0000000..d29050c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/BinomialRegression.ecl.tex
@@ -0,0 +1,58 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large validation\slash\hspace{0pt}}
+ \\
+BinomialRegression
+}
+\hypertarget{ecldoc:toc:LogisticRegression.validation.BinomialRegression}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/validation}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+LogisticRegression.validation |
+logisticregression |
+ML\_Core.Types |
+ML\_Core |
+LogisticRegression.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+BinomialRegression}}
+
+\hypertarget{ecldoc:logisticregression.validation.binomialregression}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{BinomialRegression} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/IrisDS.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/IrisDS.ecl.tex
new file mode 100644
index 0000000..67137d3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/IrisDS.ecl.tex
@@ -0,0 +1,55 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large validation\slash\hspace{0pt}}
+ \\
+IrisDS
+}
+\hypertarget{ecldoc:toc:LogisticRegression.validation.IrisDS}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/validation}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+irisDS}}
+
+\hypertarget{ecldoc:logisticregression.validation.irisds}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{irisDS} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( dsRecord )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/discrete_GermanDS.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/discrete_GermanDS.ecl.tex
new file mode 100644
index 0000000..864e7d2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/discrete_GermanDS.ecl.tex
@@ -0,0 +1,92 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large validation\slash\hspace{0pt}}
+ \\
+discrete_GermanDS
+}
+\hypertarget{ecldoc:toc:LogisticRegression.validation.discrete_GermanDS}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/validation}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+discrete\_GermanDS}}
+
+\hypertarget{ecldoc:LogisticRegression.validation.discrete_GermanDS}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{discrete\_GermanDS} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:logisticregression.validation.discrete_germands.content}{content}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+content}}
+
+\hypertarget{ecldoc:logisticregression.validation.discrete_germands.content}{}
+\hspace{0pt} \hyperlink{ecldoc:LogisticRegression.validation.discrete_GermanDS}{discrete_GermanDS} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{content} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( discrete\_GermanRECORD )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.log
new file mode 100644
index 0000000..f7aac62
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.log
@@ -0,0 +1,472 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/LogisticRegression/validation/index.tex
+(./root/LogisticRegression/validation/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/LogisticRegression/validation/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/LogisticRegression/validation/index.out)
+(root/LogisticRegression/validation/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/LogisticRegression/validation/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--18
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 18
+ []
+
+(./root/LogisticRegression/validation/BinomialRegression.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd))
+(./root/LogisticRegression/validation/discrete_GermanDS.ecl.tex [2
+
+] [3
+
+])
+(./root/LogisticRegression/validation/IrisDS.ecl.tex [4])
+(./root/LogisticRegression/validation/unit_test_dimm.ecl.tex [5
+
+]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [6
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/LogisticRegression/validation/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6585 strings out of 494945
+ 95899 string characters out of 6181032
+ 183308 words of memory out of 5000000
+ 9769 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,339b,373s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/LogisticRegression/validation/index.pdf (6 pages, 84119
+bytes).
+PDF statistics:
+ 80 PDF objects out of 1000 (max. 8388607)
+ 68 compressed objects within 1 object stream
+ 25 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.pdf
new file mode 100644
index 0000000..02770a2
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.tex
new file mode 100644
index 0000000..4d8747a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/LogisticRegression/validation/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/pkg.tmp.tex
new file mode 100644
index 0000000..02198ab
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/pkg.tmp.tex
@@ -0,0 +1,24 @@
+\chapter*{\color{headtoc} validation}
+\hypertarget{ecldoc:toc:root/LogisticRegression/validation}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.BinomialRegression}{BinomialRegression.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.discrete_GermanDS}{discrete\_GermanDS.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.IrisDS}{IrisDS.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.unit_test_dimm}{unit\_test\_dimm.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/validation/BinomialRegression.ecl}
+\input{root/LogisticRegression/validation/discrete_GermanDS.ecl}
+\input{root/LogisticRegression/validation/IrisDS.ecl}
+\input{root/LogisticRegression/validation/unit_test_dimm.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/pkg.toc.tex
new file mode 100644
index 0000000..e25fd61
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/pkg.toc.tex
@@ -0,0 +1,24 @@
+\chapter*{\color{headtoc} validation}
+\hypertarget{ecldoc:toc:root/LogisticRegression/validation}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.BinomialRegression}{BinomialRegression.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.discrete_GermanDS}{discrete\_GermanDS.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.IrisDS}{IrisDS.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:LogisticRegression.validation.unit_test_dimm}{unit\_test\_dimm.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LogisticRegression/validation/BinomialRegression.ecl}
+\input{root/LogisticRegression/validation/discrete_GermanDS.ecl}
+\input{root/LogisticRegression/validation/IrisDS.ecl}
+\input{root/LogisticRegression/validation/unit_test_dimm.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/unit_test_dimm.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/unit_test_dimm.ecl.tex
new file mode 100644
index 0000000..6f29c19
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/LogisticRegression/validation/unit_test_dimm.ecl.tex
@@ -0,0 +1,55 @@
+\chapter*{\color{headfile}
+{\large LogisticRegression\slash\hspace{0pt}}
+{\large validation\slash\hspace{0pt}}
+ \\
+unit_test_dimm
+}
+\hypertarget{ecldoc:toc:LogisticRegression.validation.unit_test_dimm}{}
+\hyperlink{ecldoc:toc:root/LogisticRegression/validation}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+LogisticRegression |
+std.BLAS.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+unit\_test\_dimm}}
+
+\hypertarget{ecldoc:logisticregression.validation.unit_test_dimm}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{unit\_test\_dimm} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/AppendID.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/AppendID.ecl.tex
new file mode 100644
index 0000000..2fdbeee
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/AppendID.ecl.tex
@@ -0,0 +1,60 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+AppendID
+}
+\hypertarget{ecldoc:toc:ML_Core.AppendID}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MACRO}
+AppendID}}
+
+\hypertarget{ecldoc:ml_core.appendid}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{AppendID} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (dIn,idfield,dOut)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{din}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{idfield}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dout}} ||| INTEGER8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/AppendSeqID.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/AppendSeqID.ecl.tex
new file mode 100644
index 0000000..b8a2017
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/AppendSeqID.ecl.tex
@@ -0,0 +1,60 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+AppendSeqID
+}
+\hypertarget{ecldoc:toc:ML_Core.AppendSeqID}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MACRO}
+AppendSeqID}}
+
+\hypertarget{ecldoc:ml_core.appendseqid}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{AppendSeqID} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (dIn,idfield,dOut)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{din}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{idfield}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dout}} ||| INTEGER8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Config.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Config.ecl.tex
new file mode 100644
index 0000000..2b1367b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Config.ecl.tex
@@ -0,0 +1,165 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+Config
+}
+\hypertarget{ecldoc:toc:ML_Core.Config}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Config}}
+
+\hypertarget{ecldoc:ML_Core.Config}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Config} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ml_core.config.maxlookup}{MaxLookup}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.config.discrete}{Discrete}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.config.roundingerror}{RoundingError}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+MaxLookup}}
+
+\hypertarget{ecldoc:ml_core.config.maxlookup}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Config}{Config} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{MaxLookup} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Discrete}}
+
+\hypertarget{ecldoc:ml_core.config.discrete}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Config}{Config} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Discrete} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RoundingError}}
+
+\hypertarget{ecldoc:ml_core.config.roundingerror}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Config}{Config} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RoundingError} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Constants.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Constants.ecl.tex
new file mode 100644
index 0000000..20061a8
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Constants.ecl.tex
@@ -0,0 +1,125 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+Constants
+}
+\hypertarget{ecldoc:toc:ML_Core.Constants}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Constants}}
+
+\hypertarget{ecldoc:ML_Core.Constants}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Constants} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Useful constants
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ml_core.constants.pi}{Pi}
+: Constant PI
+\item \hyperlink{ecldoc:ml_core.constants.root_2}{Root\_2}
+: Constant square root of 2
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Pi}}
+
+\hypertarget{ecldoc:ml_core.constants.pi}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Pi} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Constant PI
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Root\_2}}
+
+\hypertarget{ecldoc:ml_core.constants.root_2}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Root\_2} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Constant square root of 2
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/FieldAggregates.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/FieldAggregates.ecl.tex
new file mode 100644
index 0000000..46998f5
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/FieldAggregates.ecl.tex
@@ -0,0 +1,549 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+FieldAggregates
+}
+\hypertarget{ecldoc:toc:ML_Core.FieldAggregates}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+ML\_Core.Utils |
+std.system.ThorLib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+FieldAggregates}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{FieldAggregates} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.NumericField) d)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{d}} ||| TABLE ( NumericField ) --- No Doc
+\end{description}
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.simple}{Simple}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.simpleranked}{SimpleRanked}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.medians}{Medians}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.minmednext}{MinMedNext}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.buckets}{Buckets}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.bucketranges}{BucketRanges}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.modes}{Modes}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.cardinality}{Cardinality}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.rankedinput}{RankedInput}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.ntiles}{NTiles}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.fieldaggregates.ntileranges}{NTileRanges}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Simple}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.simple}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Simple} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 minval , REAL8 maxval , REAL8 sumval , REAL8 countval , REAL8 mean , REAL8 var , REAL8 sd \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+SimpleRanked}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.simpleranked}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{SimpleRanked} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value , UNSIGNED8 Pos \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Medians}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.medians}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Medians} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 median \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+MinMedNext}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.minmednext}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{MinMedNext} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 median , REAL8 nextval , REAL8 minval , REAL8 maxval , REAL8 sumval , REAL8 countval , REAL8 mean , REAL8 var , REAL8 sd \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Buckets}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.buckets}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Buckets} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Types.t\_Discrete n)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{n}} ||| INTEGER4 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value , UNSIGNED8 Pos , INTEGER4 bucket \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+BucketRanges}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.bucketranges}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{BucketRanges} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Types.t\_Discrete n)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{n}} ||| INTEGER4 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , INTEGER4 bucket , REAL8 Min , REAL8 Max , UNSIGNED8 cnt \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Modes}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.modes}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Modes} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , REAL8 mode , UNSIGNED8 cnt \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Cardinality}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.cardinality}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Cardinality} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , UNSIGNED8 cardinality \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+RankedInput}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.rankedinput}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{RankedInput} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value , REAL8 Pos \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NTiles}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.ntiles}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{NTiles} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Types.t\_Discrete n)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{n}} ||| INTEGER4 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value , REAL8 Pos , INTEGER4 ntile \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NTileRanges}}
+
+\hypertarget{ecldoc:ml_core.fieldaggregates.ntileranges}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.fieldaggregates}{FieldAggregates} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{NTileRanges} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Types.t\_Discrete n)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{n}} ||| INTEGER4 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 number , INTEGER4 ntile , REAL8 Min , REAL8 Max , UNSIGNED8 cnt \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/FromField.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/FromField.ecl.tex
new file mode 100644
index 0000000..89db47a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/FromField.ecl.tex
@@ -0,0 +1,61 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+FromField
+}
+\hypertarget{ecldoc:toc:ML_Core.FromField}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MACRO}
+FromField}}
+
+\hypertarget{ecldoc:ml_core.fromfield}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{FromField} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (dIn,lOut,dOut,dMap='')}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dmap}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{din}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dout}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{lout}} ||| INTEGER8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Generate.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Generate.ecl.tex
new file mode 100644
index 0000000..076acca
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Generate.ecl.tex
@@ -0,0 +1,195 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+Generate
+}
+\hypertarget{ecldoc:toc:ML_Core.Generate}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Generate}}
+
+\hypertarget{ecldoc:ML_Core.Generate}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Generate} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ecldoc-tp_Method}{tp\_Method}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.generate.methodname}{MethodName}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.generate.topoly}{ToPoly}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+tp\_Method}}
+
+\hypertarget{ecldoc:ecldoc-tp_Method}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Generate}{Generate} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{tp\_Method} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED1} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+MethodName}}
+
+\hypertarget{ecldoc:ml_core.generate.methodname}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Generate}{Generate} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{MethodName} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (tp\_Method x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| UNSIGNED1 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING7} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+ToPoly}}
+
+\hypertarget{ecldoc:ml_core.generate.topoly}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Generate}{Generate} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{ToPoly} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.NumericField) seedCol, UNSIGNED maxN=6)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{maxn}} ||| UNSIGNED8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{seedcol}} ||| TABLE ( NumericField ) --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/IClassify.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/IClassify.ecl.tex
new file mode 100644
index 0000000..5160ef1
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/IClassify.ecl.tex
@@ -0,0 +1,210 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Interfaces\slash\hspace{0pt}}
+ \\
+IClassify
+}
+\hypertarget{ecldoc:toc:ML_Core.Interfaces.IClassify}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Interfaces}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+IClassify}}
+
+\hypertarget{ecldoc:ML_Core.Interfaces.IClassify}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{IClassify} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Interface definition for Classification. Actual implementation modules will probably take parameters.
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ml_core.interfaces.iclassify.getmodel}{GetModel}
+: Calculate the model to fit the observation data to the observed classes
+\item \hyperlink{ecldoc:ml_core.interfaces.iclassify.classify}{Classify}
+: Classify the observations using a model
+\item \hyperlink{ecldoc:ml_core.interfaces.iclassify.report}{Report}
+: Report the confusion matrix for the classifier and training data
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+GetModel}}
+
+\hypertarget{ecldoc:ml_core.interfaces.iclassify.getmodel}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Interfaces.IClassify}{IClassify} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Layout\_Model)} & \textbf{GetModel} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.NumericField) observations, DATASET(Types.DiscreteField) classifications)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Calculate the model to fit the observation data to the observed classes.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{observations}} ||| TABLE ( NumericField ) --- the observed explanatory values
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{classifications}} ||| TABLE ( DiscreteField ) --- the observed classification used to build the model
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- the encoded model
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Classify}}
+
+\hypertarget{ecldoc:ml_core.interfaces.iclassify.classify}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Interfaces.IClassify}{IClassify} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Classify\_Result)} & \textbf{Classify} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.Layout\_Model) model, DATASET(Types.NumericField) new\_observations)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Classify the observations using a model.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{model}} ||| TABLE ( Layout\_Model ) --- The model, which must be produced by a corresponding getModel function.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{new\_observations}} ||| TABLE ( NumericField ) --- observations to be classified
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , INTEGER4 value , REAL8 conf \} )} --- Classification with a confidence value
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Report}}
+
+\hypertarget{ecldoc:ml_core.interfaces.iclassify.report}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Interfaces.IClassify}{IClassify} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.Confusion\_Detail)} & \textbf{Report} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.Layout\_Model) model, DATASET(Types.NumericField) observations, DATASET(Types.DiscreteField) classifications)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Report the confusion matrix for the classifier and training data.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{model}} ||| TABLE ( Layout\_Model ) --- the encoded model
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{observations}} ||| TABLE ( NumericField ) --- the explanatory values.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{classifications}} ||| TABLE ( DiscreteField ) --- the classifications associated with the observations
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED4 classifier , INTEGER4 actual\_class , INTEGER4 predict\_class , UNSIGNED4 occurs , BOOLEAN correct \} )} --- the confusion matrix showing correct and incorrect results
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/IRegression.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/IRegression.ecl.tex
new file mode 100644
index 0000000..ae779d2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/IRegression.ecl.tex
@@ -0,0 +1,157 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Interfaces\slash\hspace{0pt}}
+ \\
+IRegression
+}
+\hypertarget{ecldoc:toc:ML_Core.Interfaces.IRegression}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Interfaces}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+IRegression}}
+
+\hypertarget{ecldoc:ml_core.interfaces.iregression}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{IRegression} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) X=empty\_data, DATASET(NumericField) Y=empty\_data)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Interface Definition for Regression Modules Regression learns a function that maps a set of input data to one or more output variables. The resulting learned function is known as the model. That model can then be used repetitively to predict (i.e. estimate) the output value(s) based on new input data.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{Y}} ||| TABLE ( NumericField ) --- The dependent variable(s) in DATASET(NumericField) format. Each statistical unit (e.g. record) is identified by 'id', and each feature is identified by field number (i.e. 'number').
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( NumericField ) --- The independent data in DATASET(NumericField) format. Each statistical unit (e.g. record) is identified by 'id', and each feature is identified by field number (i.e. 'number').
+\end{description}
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ml_core.interfaces.iregression.getmodel}{GetModel}
+: Calculate and return the 'learned' model The model may be persisted and later used to make predictions using 'Predict' below
+\item \hyperlink{ecldoc:ml_core.interfaces.iregression.predict}{Predict}
+: Predict the output variable(s) based on a previously learned model
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+GetModel}}
+
+\hypertarget{ecldoc:ml_core.interfaces.iregression.getmodel}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.interfaces.iregression}{IRegression} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Model)} & \textbf{GetModel} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Calculate and return the 'learned' model The model may be persisted and later used to make predictions using 'Predict' below.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- DATASET(LayoutModel) describing the learned model parameters
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Predict}}
+
+\hypertarget{ecldoc:ml_core.interfaces.iregression.predict}{}
+\hspace{0pt} \hyperlink{ecldoc:ml_core.interfaces.iregression}{IRegression} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(NumericField)} & \textbf{Predict} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) newX, DATASET(Layout\_Model) model)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Predict the output variable(s) based on a previously learned model
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{newX}} ||| TABLE ( NumericField ) --- DATASET(NumericField) containing the X values to b predicted.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{model}} ||| TABLE ( Layout\_Model ) --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- DATASET(NumericField) containing one entry per observation (i.e. id) in newX. This represents the predicted values for Y.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.log
new file mode 100644
index 0000000..a4e83a8
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.log
@@ -0,0 +1,463 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/ML_Core/Interfaces/index.tex
+(./root/ML_Core/Interfaces/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/ML_Core/Interfaces/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+ (/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/ML_Core/Interfaces/index.out) (root/ML_Core/Interfaces/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/ML_Core/Interfaces/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--16
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 16
+ []
+
+(./root/ML_Core/Interfaces/IClassify.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+ (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd) [2
+
+] [3])
+(./root/ML_Core/Interfaces/IRegression.ecl.tex [4] [5
+
+]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [6]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/ML_Core/Interfaces/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6579 strings out of 494945
+ 95248 string characters out of 6181032
+ 185308 words of memory out of 5000000
+ 9769 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,449b,395s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/ML_Core/Interfaces/index.pdf (6 pages, 117219 bytes).
+PDF statistics:
+ 90 PDF objects out of 1000 (max. 8388607)
+ 77 compressed objects within 1 object stream
+ 27 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.pdf
new file mode 100644
index 0000000..aca6706
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.tex
new file mode 100644
index 0000000..81d9692
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/ML_Core/Interfaces/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/pkg.tmp.tex
new file mode 100644
index 0000000..4e6d1ea
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/pkg.tmp.tex
@@ -0,0 +1,20 @@
+\chapter*{\color{headtoc} Interfaces}
+\hypertarget{ecldoc:toc:root/ML_Core/Interfaces}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Interfaces.IClassify}{IClassify.ecl} \\
+Interface definition for Classification \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Interfaces.IRegression}{IRegression.ecl} \\
+Interface Definition for Regression Modules Regression learns a function that maps a set of input data to one or more output variables \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Interfaces/IClassify.ecl}
+\input{root/ML_Core/Interfaces/IRegression.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/pkg.toc.tex
new file mode 100644
index 0000000..40fc521
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Interfaces/pkg.toc.tex
@@ -0,0 +1,20 @@
+\chapter*{\color{headtoc} Interfaces}
+\hypertarget{ecldoc:toc:root/ML_Core/Interfaces}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Interfaces.IClassify}{IClassify.ecl} \\
+Interface definition for Classification \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Interfaces.IRegression}{IRegression.ecl} \\
+Interface Definition for Regression Modules Regression learns a function that maps a set of input data to one or more output variables \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Interfaces/IClassify.ecl}
+\input{root/ML_Core/Interfaces/IRegression.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Beta.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Beta.ecl.tex
new file mode 100644
index 0000000..ea22ddd
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Beta.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+Beta
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.Beta}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Math |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Beta}}
+
+\hypertarget{ecldoc:ml_core.math.beta}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Beta} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 y)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Return the beta value of two positive real numbers, x and y
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{y}} ||| REAL8 --- the value of the second number
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the value of the first number
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- the beta value
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Distributions.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Distributions.ecl.tex
new file mode 100644
index 0000000..0fcf51e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Distributions.ecl.tex
@@ -0,0 +1,393 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+Distributions
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.Distributions}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Constants |
+ML\_Core.Math |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Distributions}}
+
+\hypertarget{ecldoc:ML_Core.Math.Distributions}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Distributions} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ml_core.math.distributions.normal_cdf}{Normal\_CDF}
+: Cumulative Distribution of the standard normal distribution, the probability that a normal random variable will be smaller than x standard deviations above or below the mean
+\item \hyperlink{ecldoc:ml_core.math.distributions.normal_ppf}{Normal\_PPF}
+: Normal Distribution Percentage Point Function
+\item \hyperlink{ecldoc:ml_core.math.distributions.t_cdf}{T\_CDF}
+: Students t distribution integral evaluated between negative infinity and x
+\item \hyperlink{ecldoc:ml_core.math.distributions.t_ppf}{T\_PPF}
+: Percentage point function for the T distribution
+\item \hyperlink{ecldoc:ml_core.math.distributions.chi2_cdf}{Chi2\_CDF}
+: The cumulative distribution function for the Chi Square distribution
+\item \hyperlink{ecldoc:ml_core.math.distributions.chi2_ppf}{Chi2\_PPF}
+: The Chi Squared PPF function
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Normal\_CDF}}
+
+\hypertarget{ecldoc:ml_core.math.distributions.normal_cdf}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Math.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Normal\_CDF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Cumulative Distribution of the standard normal distribution, the probability that a normal random variable will be smaller than x standard deviations above or below the mean. Taken from C/C++ Mathematical Algorithms for Scientists and Engineers, n. Shammas, McGraw-Hill, 1995
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the number of standard deviations
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURNS}}}] probability of exceeding x.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Normal\_PPF}}
+
+\hypertarget{ecldoc:ml_core.math.distributions.normal_ppf}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Math.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Normal\_PPF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Normal Distribution Percentage Point Function. Translated from C/C++ Mathematical Algorithms for Scientists and Engineers, N. Shammas, McGraw-Hill, 1995
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- probability
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURNS}}}] number of standard deviations from the mean
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+T\_CDF}}
+
+\hypertarget{ecldoc:ml_core.math.distributions.t_cdf}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Math.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{T\_CDF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Students t distribution integral evaluated between negative infinity and x. Translated from NIST SEL DATAPAC Fortran TCDF.f source
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- degrees of freedom
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- value of the evaluation
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURNS}}}] the probability that a value will be less than the specified value
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+T\_PPF}}
+
+\hypertarget{ecldoc:ml_core.math.distributions.t_ppf}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Math.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{T\_PPF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Percentage point function for the T distribution. Translated from NIST SEL DATAPAC Fortran TPPF.f source
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Chi2\_CDF}}
+
+\hypertarget{ecldoc:ml_core.math.distributions.chi2_cdf}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Math.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Chi2\_CDF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+The cumulative distribution function for the Chi Square distribution. the CDF for the specfied degrees of freedom. Translated from the NIST SEL DATAPAC Fortran subroutine CHSCDF.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Chi2\_PPF}}
+
+\hypertarget{ecldoc:ml_core.math.distributions.chi2_ppf}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Math.Distributions}{Distributions} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Chi2\_PPF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 df)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+The Chi Squared PPF function. Translated from the NIST SEL DATAPAC Fortran subroutine CHSPPF.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{df}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/DoubleFac.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/DoubleFac.ecl.tex
new file mode 100644
index 0000000..f8cfa19
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/DoubleFac.ecl.tex
@@ -0,0 +1,59 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+DoubleFac
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.DoubleFac}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+DoubleFac}}
+
+\hypertarget{ecldoc:ml_core.math.doublefac}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{DoubleFac} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (INTEGER2 i)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+The 'double' factorial is defined for ODD n and is the product of all the odd numbers up to and including that number. We are extending the meaning to even numbers to mean the product of the even numbers up to and including that number. Thus DoubleFac(8) = 8*6*4*2 We also defend against i < 2 (returning 1.0)
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{i}} ||| INTEGER2 --- the value used in the calculation
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- the factorial of the sequence, declining by 2
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Fac.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Fac.ecl.tex
new file mode 100644
index 0000000..fa7bba7
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Fac.ecl.tex
@@ -0,0 +1,59 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+Fac
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.Fac}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+Fac}}
+
+\hypertarget{ecldoc:ml_core.math.fac}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Fac} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (UNSIGNED2 i)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Factorial function
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{i}} ||| UNSIGNED2 --- the value used, (i)(i-1)(i-2)\ldots(2)
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- the factorial i!
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/NCK.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/NCK.ecl.tex
new file mode 100644
index 0000000..5b85bd2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/NCK.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+NCK
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.NCK}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Math |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NCK}}
+
+\hypertarget{ecldoc:ml_core.math.nck}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{NCK} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (INTEGER2 N, INTEGER2 K)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{k}} ||| INTEGER2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{n}} ||| INTEGER2 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Poly.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Poly.ecl.tex
new file mode 100644
index 0000000..5e5e75f
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/Poly.ecl.tex
@@ -0,0 +1,60 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+Poly
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.Poly}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+Poly}}
+
+\hypertarget{ecldoc:ml_core.math.poly}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{Poly} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, SET OF REAL8 Coeffs)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Evaluate a polynomial from a set of co-effs. Co-effs 1 is assumed to be the HIGH order of the equation. Thus for ax\^{}2+bx+c - the set would need to be Coef := [a,b,c];
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{Coeffs}} ||| SET ( REAL8 ) --- a set of coefficients forthe polynomial. The ALL set is considered to be all zero values
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the value of x in the polynomial
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- value of the polynomial at x
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/StirlingFormula.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/StirlingFormula.ecl.tex
new file mode 100644
index 0000000..a7bc133
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/StirlingFormula.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+StirlingFormula
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.StirlingFormula}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Math |
+ML\_Core.Constants |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+StirlingFormula}}
+
+\hypertarget{ecldoc:ml_core.math.stirlingformula}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{StirlingFormula} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Stirling's formula
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the point of evaluation
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- evaluation result
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/gamma.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/gamma.ecl.tex
new file mode 100644
index 0000000..74b04e6
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/gamma.ecl.tex
@@ -0,0 +1,59 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+gamma
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.gamma}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+gamma}}
+
+\hypertarget{ecldoc:ml_core.math.gamma}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{gamma} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Return the value of gamma function of real number x A wrapper for the standard C tgamma function.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the input x
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- the value of GAMMA evaluated at x
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.log
new file mode 100644
index 0000000..48b1dd3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.log
@@ -0,0 +1,493 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/ML_Core/Math/index.tex
+(./root/ML_Core/Math/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/ML_Core/Math/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+ (/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/ML_Core/Math/index.out) (root/ML_Core/Math/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/ML_Core/Math/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--40
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 40
+ []
+
+
+Overfull \hbox (12.79999pt too wide) in alignment at lines 40--41
+ []
+ []
+
+(./root/ML_Core/Math/Beta.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+ (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd))
+(./root/ML_Core/Math/Distributions.ecl.tex [2
+
+] [3
+
+] [4] [5])
+(./root/ML_Core/Math/DoubleFac.ecl.tex [6]) (./root/ML_Core/Math/Fac.ecl.tex
+[7
+
+]) (./root/ML_Core/Math/gamma.ecl.tex [8
+
+])
+(./root/ML_Core/Math/log_gamma.ecl.tex [9
+
+])
+(./root/ML_Core/Math/lowerGamma.ecl.tex [10
+
+]) (./root/ML_Core/Math/NCK.ecl.tex
+[11
+
+]) (./root/ML_Core/Math/Poly.ecl.tex [12
+
+])
+(./root/ML_Core/Math/StirlingFormula.ecl.tex [13
+
+])
+(./root/ML_Core/Math/upperGamma.ecl.tex [14
+
+]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [15
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/ML_Core/Math/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6654 strings out of 494945
+ 96623 string characters out of 6181032
+ 189308 words of memory out of 5000000
+ 9771 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,417b,388s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/ML_Core/Math/index.pdf (15 pages, 129881 bytes).
+PDF statistics:
+ 187 PDF objects out of 1000 (max. 8388607)
+ 164 compressed objects within 2 object streams
+ 65 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.pdf
new file mode 100644
index 0000000..eda5761
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.tex
new file mode 100644
index 0000000..eacff3d
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/ML_Core/Math/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/log_gamma.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/log_gamma.ecl.tex
new file mode 100644
index 0000000..eed57f1
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/log_gamma.ecl.tex
@@ -0,0 +1,59 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+log_gamma
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.log_gamma}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+log\_gamma}}
+
+\hypertarget{ecldoc:ml_core.math.log_gamma}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{log\_gamma} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Return the value of the log gamma function of the absolute value of X. A wrapper for the standard C lgamma function. Avoids the race condition found on some platforms by taking the absolute value of the of the input argument.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the input x
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- the value of the log of the GAMMA evaluated at ABS(x)
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/lowerGamma.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/lowerGamma.ecl.tex
new file mode 100644
index 0000000..8888be3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/lowerGamma.ecl.tex
@@ -0,0 +1,60 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+lowerGamma
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.lowerGamma}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+lowerGamma}}
+
+\hypertarget{ecldoc:ml_core.math.lowergamma}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{lowerGamma} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 y)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Return the lower incomplete gamma value of two real numbers, x and y
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{y}} ||| REAL8 --- the value of the second number
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the value of the first number
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- the lower incomplete gamma value
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/pkg.tmp.tex
new file mode 100644
index 0000000..8e9deeb
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/pkg.tmp.tex
@@ -0,0 +1,54 @@
+\chapter*{\color{headtoc} Math}
+\hypertarget{ecldoc:toc:root/ML_Core/Math}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Beta}{Beta.ecl} \\
+Return the beta value of two positive real numbers, x and y \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Distributions}{Distributions.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.DoubleFac}{DoubleFac.ecl} \\
+The 'double' factorial is defined for ODD n and is the product of all the odd numbers up to and including that number \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Fac}{Fac.ecl} \\
+Factorial function \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.gamma}{gamma.ecl} \\
+Return the value of gamma function of real number x A wrapper for the standard C tgamma function \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.log_gamma}{log\_gamma.ecl} \\
+Return the value of the log gamma function of the absolute value of X \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.lowerGamma}{lowerGamma.ecl} \\
+Return the lower incomplete gamma value of two real numbers, \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.NCK}{NCK.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Poly}{Poly.ecl} \\
+Evaluate a polynomial from a set of co-effs \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.StirlingFormula}{StirlingFormula.ecl} \\
+Stirling's formula \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.upperGamma}{upperGamma.ecl} \\
+Return the upper incomplete gamma value of two real numbers, x and y \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Math/Beta.ecl}
+\input{root/ML_Core/Math/Distributions.ecl}
+\input{root/ML_Core/Math/DoubleFac.ecl}
+\input{root/ML_Core/Math/Fac.ecl}
+\input{root/ML_Core/Math/gamma.ecl}
+\input{root/ML_Core/Math/log_gamma.ecl}
+\input{root/ML_Core/Math/lowerGamma.ecl}
+\input{root/ML_Core/Math/NCK.ecl}
+\input{root/ML_Core/Math/Poly.ecl}
+\input{root/ML_Core/Math/StirlingFormula.ecl}
+\input{root/ML_Core/Math/upperGamma.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/pkg.toc.tex
new file mode 100644
index 0000000..c19e7f0
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/pkg.toc.tex
@@ -0,0 +1,54 @@
+\chapter*{\color{headtoc} Math}
+\hypertarget{ecldoc:toc:root/ML_Core/Math}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Beta}{Beta.ecl} \\
+Return the beta value of two positive real numbers, x and y \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Distributions}{Distributions.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.DoubleFac}{DoubleFac.ecl} \\
+The 'double' factorial is defined for ODD n and is the product of all the odd numbers up to and including that number \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Fac}{Fac.ecl} \\
+Factorial function \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.gamma}{gamma.ecl} \\
+Return the value of gamma function of real number x A wrapper for the standard C tgamma function \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.log_gamma}{log\_gamma.ecl} \\
+Return the value of the log gamma function of the absolute value of X \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.lowerGamma}{lowerGamma.ecl} \\
+Return the lower incomplete gamma value of two real numbers, \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.NCK}{NCK.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.Poly}{Poly.ecl} \\
+Evaluate a polynomial from a set of co-effs \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.StirlingFormula}{StirlingFormula.ecl} \\
+Stirling's formula \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Math.upperGamma}{upperGamma.ecl} \\
+Return the upper incomplete gamma value of two real numbers, x and y \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Math/Beta.ecl}
+\input{root/ML_Core/Math/Distributions.ecl}
+\input{root/ML_Core/Math/DoubleFac.ecl}
+\input{root/ML_Core/Math/Fac.ecl}
+\input{root/ML_Core/Math/gamma.ecl}
+\input{root/ML_Core/Math/log_gamma.ecl}
+\input{root/ML_Core/Math/lowerGamma.ecl}
+\input{root/ML_Core/Math/NCK.ecl}
+\input{root/ML_Core/Math/Poly.ecl}
+\input{root/ML_Core/Math/StirlingFormula.ecl}
+\input{root/ML_Core/Math/upperGamma.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/upperGamma.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/upperGamma.ecl.tex
new file mode 100644
index 0000000..a7a1ae6
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Math/upperGamma.ecl.tex
@@ -0,0 +1,60 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Math\slash\hspace{0pt}}
+ \\
+upperGamma
+}
+\hypertarget{ecldoc:toc:ML_Core.Math.upperGamma}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} EMBED}
+upperGamma}}
+
+\hypertarget{ecldoc:ml_core.math.uppergamma}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} REAL8} & \textbf{upperGamma} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (REAL8 x, REAL8 y)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Return the upper incomplete gamma value of two real numbers, x and y.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{y}} ||| REAL8 --- the value of the second number
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{x}} ||| REAL8 --- the value of the first number
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- the upper incomplete gamma value
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Check_Dist.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Check_Dist.ecl.tex
new file mode 100644
index 0000000..19d1616
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Check_Dist.ecl.tex
@@ -0,0 +1,56 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+Check_Dist
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.Check_Dist}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Math.Distributions |
+ML\_Core |
+python |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Check\_Dist}}
+
+\hypertarget{ecldoc:ml_core.tests.check_dist}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Check\_Dist} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Validate_Betas.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Validate_Betas.ecl.tex
new file mode 100644
index 0000000..ab52e63
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Validate_Betas.ecl.tex
@@ -0,0 +1,56 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+Validate_Betas
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.Validate_Betas}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Math |
+python |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Validate\_Betas}}
+
+\hypertarget{ecldoc:ml_core.tests.validate_betas}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Validate\_Betas} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Validate_Gammas.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Validate_Gammas.ecl.tex
new file mode 100644
index 0000000..935272e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/Validate_Gammas.ecl.tex
@@ -0,0 +1,56 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+Validate_Gammas
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.Validate_Gammas}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Math |
+python |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Validate\_Gammas}}
+
+\hypertarget{ecldoc:ml_core.tests.validate_gammas}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Validate\_Gammas} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/field_aggregates.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/field_aggregates.ecl.tex
new file mode 100644
index 0000000..ab6bc25
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/field_aggregates.ecl.tex
@@ -0,0 +1,55 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+field_aggregates
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.field_aggregates}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+field\_aggregates}}
+
+\hypertarget{ecldoc:ml_core.tests.field_aggregates}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{field\_aggregates} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/generate.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/generate.ecl.tex
new file mode 100644
index 0000000..2fffa89
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/generate.ecl.tex
@@ -0,0 +1,54 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+generate
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.generate}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+generate}}
+
+\hypertarget{ecldoc:ml_core.tests.generate}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{generate} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.log
new file mode 100644
index 0000000..d3c9cdf
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.log
@@ -0,0 +1,480 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/ML_Core/Tests/index.tex
+(./root/ML_Core/Tests/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/ML_Core/Tests/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+ (/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/ML_Core/Tests/index.out) (root/ML_Core/Tests/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/ML_Core/Tests/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--26
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 26
+ []
+
+(./root/ML_Core/Tests/Check_Dist.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+ (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd))
+(./root/ML_Core/Tests/field_aggregates.ecl.tex [2
+
+])
+(./root/ML_Core/Tests/generate.ecl.tex [3
+
+])
+(./root/ML_Core/Tests/test_appends.ecl.tex [4
+
+])
+(./root/ML_Core/Tests/test_discrete.ecl.tex [5
+
+])
+(./root/ML_Core/Tests/to_from.ecl.tex [6
+
+])
+(./root/ML_Core/Tests/Validate_Betas.ecl.tex [7
+
+])
+(./root/ML_Core/Tests/Validate_Gammas.ecl.tex [8
+
+]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [9
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/ML_Core/Tests/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6613 strings out of 494945
+ 96026 string characters out of 6181032
+ 184308 words of memory out of 5000000
+ 9768 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,283b,312s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/ML_Core/Tests/index.pdf (9 pages, 87933 bytes).
+PDF statistics:
+ 114 PDF objects out of 1000 (max. 8388607)
+ 99 compressed objects within 1 object stream
+ 38 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.pdf
new file mode 100644
index 0000000..665d25b
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.tex
new file mode 100644
index 0000000..acff086
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/ML_Core/Tests/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/pkg.tmp.tex
new file mode 100644
index 0000000..b4614ce
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/pkg.tmp.tex
@@ -0,0 +1,36 @@
+\chapter*{\color{headtoc} Tests}
+\hypertarget{ecldoc:toc:root/ML_Core/Tests}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.Check_Dist}{Check\_Dist.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.field_aggregates}{field\_aggregates.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.generate}{generate.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.test_appends}{test\_appends.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.test_discrete}{test\_discrete.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.to_from}{to\_from.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.Validate_Betas}{Validate\_Betas.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.Validate_Gammas}{Validate\_Gammas.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Tests/Check_Dist.ecl}
+\input{root/ML_Core/Tests/field_aggregates.ecl}
+\input{root/ML_Core/Tests/generate.ecl}
+\input{root/ML_Core/Tests/test_appends.ecl}
+\input{root/ML_Core/Tests/test_discrete.ecl}
+\input{root/ML_Core/Tests/to_from.ecl}
+\input{root/ML_Core/Tests/Validate_Betas.ecl}
+\input{root/ML_Core/Tests/Validate_Gammas.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/pkg.toc.tex
new file mode 100644
index 0000000..7c786d4
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/pkg.toc.tex
@@ -0,0 +1,36 @@
+\chapter*{\color{headtoc} Tests}
+\hypertarget{ecldoc:toc:root/ML_Core/Tests}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.Check_Dist}{Check\_Dist.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.field_aggregates}{field\_aggregates.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.generate}{generate.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.test_appends}{test\_appends.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.test_discrete}{test\_discrete.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.to_from}{to\_from.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.Validate_Betas}{Validate\_Betas.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Tests.Validate_Gammas}{Validate\_Gammas.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Tests/Check_Dist.ecl}
+\input{root/ML_Core/Tests/field_aggregates.ecl}
+\input{root/ML_Core/Tests/generate.ecl}
+\input{root/ML_Core/Tests/test_appends.ecl}
+\input{root/ML_Core/Tests/test_discrete.ecl}
+\input{root/ML_Core/Tests/to_from.ecl}
+\input{root/ML_Core/Tests/Validate_Betas.ecl}
+\input{root/ML_Core/Tests/Validate_Gammas.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/test_appends.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/test_appends.ecl.tex
new file mode 100644
index 0000000..98ab40b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/test_appends.ecl.tex
@@ -0,0 +1,55 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+test_appends
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.test_appends}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+std.system.thorlib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+test\_appends}}
+
+\hypertarget{ecldoc:ml_core.tests.test_appends}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{test\_appends} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/test_discrete.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/test_discrete.ecl.tex
new file mode 100644
index 0000000..9a3b5ce
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/test_discrete.ecl.tex
@@ -0,0 +1,55 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+test_discrete
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.test_discrete}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+test\_discrete}}
+
+\hypertarget{ecldoc:ml_core.tests.test_discrete}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{test\_discrete} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/to_from.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/to_from.ecl.tex
new file mode 100644
index 0000000..f940fc4
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Tests/to_from.ecl.tex
@@ -0,0 +1,55 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Tests\slash\hspace{0pt}}
+ \\
+to_from
+}
+\hypertarget{ecldoc:toc:ML_Core.Tests.to_from}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+to\_from}}
+
+\hypertarget{ecldoc:ml_core.tests.to_from}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{to\_from} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/ToField.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/ToField.ecl.tex
new file mode 100644
index 0000000..a014c24
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/ToField.ecl.tex
@@ -0,0 +1,63 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+ToField
+}
+\hypertarget{ecldoc:toc:ML_Core.ToField}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MACRO}
+ToField}}
+
+\hypertarget{ecldoc:ml_core.tofield}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{ToField} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (dIn,dOut,idfield='', wifield='', wivalue='',datafields='')}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{datafields}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{wivalue}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{wifield}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{din}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{idfield}} ||| INTEGER8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dout}} ||| INTEGER8 --- No Doc
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Types.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Types.ecl.tex
new file mode 100644
index 0000000..98411bb
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Types.ecl.tex
@@ -0,0 +1,833 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+ \\
+Types
+}
+\hypertarget{ecldoc:toc:ML_Core.Types}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Types}}
+
+\hypertarget{ecldoc:ML_Core.Types}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Types} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:ml_core.types.t_recordid}{t\_RecordID}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_fieldnumber}{t\_FieldNumber}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_fieldreal}{t\_FieldReal}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_fieldsign}{t\_FieldSign}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_discrete}{t\_Discrete}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_item}{t\_Item}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_count}{t\_Count}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_work_item}{t\_Work\_Item}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.anyfield}{AnyField}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.numericfield}{NumericField}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.discretefield}{DiscreteField}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.layout_model}{Layout\_Model}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.classify_result}{Classify\_Result}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.l_result}{l\_result}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.confusion_detail}{Confusion\_Detail}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.itemelement}{ItemElement}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_node}{t\_node}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.t_level}{t\_level}
+: No Documentation Found
+\item \hyperlink{ecldoc:ml_core.types.nodeid}{NodeID}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_RecordID}}
+
+\hypertarget{ecldoc:ml_core.types.t_recordid}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_RecordID} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_FieldNumber}}
+
+\hypertarget{ecldoc:ml_core.types.t_fieldnumber}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_FieldNumber} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED4} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_FieldReal}}
+
+\hypertarget{ecldoc:ml_core.types.t_fieldreal}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_FieldReal} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_FieldSign}}
+
+\hypertarget{ecldoc:ml_core.types.t_fieldsign}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_FieldSign} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER1} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_Discrete}}
+
+\hypertarget{ecldoc:ml_core.types.t_discrete}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_Discrete} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER4} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_Item}}
+
+\hypertarget{ecldoc:ml_core.types.t_item}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_Item} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED4} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_Count}}
+
+\hypertarget{ecldoc:ml_core.types.t_count}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_Count} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_Work\_Item}}
+
+\hypertarget{ecldoc:ml_core.types.t_work_item}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_Work\_Item} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED2} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+AnyField}}
+
+\hypertarget{ecldoc:ml_core.types.anyfield}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{AnyField} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+NumericField}}
+
+\hypertarget{ecldoc:ml_core.types.numericfield}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{NumericField} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+DiscreteField}}
+
+\hypertarget{ecldoc:ml_core.types.discretefield}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{DiscreteField} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Layout\_Model}}
+
+\hypertarget{ecldoc:ml_core.types.layout_model}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Layout\_Model} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Classify\_Result}}
+
+\hypertarget{ecldoc:ml_core.types.classify_result}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Classify\_Result} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{conf}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+l\_result}}
+
+\hypertarget{ecldoc:ml_core.types.l_result}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{l\_result} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{number}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{conf}} ||| REAL8 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Confusion\_Detail}}
+
+\hypertarget{ecldoc:ml_core.types.confusion_detail}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Confusion\_Detail} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{correct}} ||| BOOLEAN --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{actual\_class}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{occurs}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{predict\_class}} ||| INTEGER4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{classifier}} ||| UNSIGNED4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+ItemElement}}
+
+\hypertarget{ecldoc:ml_core.types.itemelement}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{ItemElement} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{value}} ||| UNSIGNED4 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{id}} ||| UNSIGNED8 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_node}}
+
+\hypertarget{ecldoc:ml_core.types.t_node}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_node} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER4} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_level}}
+
+\hypertarget{ecldoc:ml_core.types.t_level}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_level} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED2} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+NodeID}}
+
+\hypertarget{ecldoc:ml_core.types.nodeid}{}
+\hspace{0pt} \hyperlink{ecldoc:ML_Core.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{NodeID} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{level}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi}} ||| UNSIGNED2 --- No Doc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{node\_id}} ||| INTEGER4 --- No Doc
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/Fat.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/Fat.ecl.tex
new file mode 100644
index 0000000..575eea2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/Fat.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Utils\slash\hspace{0pt}}
+ \\
+Fat
+}
+\hypertarget{ecldoc:toc:ML_Core.Utils.Fat}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Utils}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Fat}}
+
+\hypertarget{ecldoc:ml_core.utils.fat}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.NumericField)} & \textbf{Fat} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.NumericField) d0, Types.t\_FieldReal v=0)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Will take a potentially sparse file d and fill in the missing with value v for Numeric Field datasets
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{v}} ||| REAL8 --- The value to assign missing records
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{d0}} ||| TABLE ( NumericField ) --- They myriad format Numeric Field dataset to be filled
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- A full Numeric Field dataset with every field populated
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/FatD.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/FatD.ecl.tex
new file mode 100644
index 0000000..6578d08
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/FatD.ecl.tex
@@ -0,0 +1,66 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Utils\slash\hspace{0pt}}
+ \\
+FatD
+}
+\hypertarget{ecldoc:toc:ML_Core.Utils.FatD}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Utils}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+FatD}}
+
+\hypertarget{ecldoc:ml_core.utils.fatd}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Types.DiscreteField)} & \textbf{FatD} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Types.DiscreteField) d0, Types.t\_Discrete v=0)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Will take a potentially sparse file d and fill in the missing with value v for Discrete Field datasets
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{v}} ||| INTEGER4 --- The value to assign missing records
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{d0}} ||| TABLE ( DiscreteField ) --- They myriad format Discrete Field dataset to be filled
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , INTEGER4 value \} )} --- A full Discrete Field dataset with every field populated
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/Gini.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/Gini.ecl.tex
new file mode 100644
index 0000000..1d7bede
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/Gini.ecl.tex
@@ -0,0 +1,62 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Utils\slash\hspace{0pt}}
+ \\
+Gini
+}
+\hypertarget{ecldoc:toc:ML_Core.Utils.Gini}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Utils}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MACRO}
+Gini}}
+
+\hypertarget{ecldoc:ml_core.utils.gini}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Gini} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (infile, pivot, target, wi\_name='wi')}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Creates a file of pivot/target pairs with a Gini impurity value.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{target}} ||| INTEGER8 --- the name of the field used as the target
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{wi\_name}} ||| INTEGER8 --- the name of the work item field, default is ''wi'' return A table by Work Item and Pivot value giving count and Gini impurity value
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{pivot}} ||| INTEGER8 --- the name of the pivot field
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{infile}} ||| INTEGER8 --- the input file, any type with a work item field
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{BOOLEAN} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/SequenceInField.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/SequenceInField.ecl.tex
new file mode 100644
index 0000000..d5076d4
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/SequenceInField.ecl.tex
@@ -0,0 +1,62 @@
+\chapter*{\color{headfile}
+{\large ML\_Core\slash\hspace{0pt}}
+{\large Utils\slash\hspace{0pt}}
+ \\
+SequenceInField
+}
+\hypertarget{ecldoc:toc:ML_Core.Utils.SequenceInField}{}
+\hyperlink{ecldoc:toc:root/ML_Core/Utils}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MACRO}
+SequenceInField}}
+
+\hypertarget{ecldoc:ml_core.utils.sequenceinfield}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{SequenceInField} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (infile,infield,seq,wi\_name='wi')}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Given a file which is sorted by the work item identifier and INFIELD (and possibly other values), add sequence numbers within the range of each infield. Slighly elaborate code is to avoid having to partition the data to one value of infield per node and to work with very large numbers of records where a global count project would be inappropriate. This is useful for assigning rank positions with the groupings.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{wi\_name}} ||| INTEGER8 --- work item field name, default is wi
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{infield}} ||| INTEGER8 --- field name of grouping field
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{seq}} ||| INTEGER8 --- name of the field to receive the sequence number
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{infile}} ||| INTEGER8 --- the input file, any type
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{BOOLEAN} --- a file of the same type with sequence numbers applied
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.log
new file mode 100644
index 0000000..3d37c69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.log
@@ -0,0 +1,468 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/ML_Core/Utils/index.tex
+(./root/ML_Core/Utils/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+)
+(root/ML_Core/Utils/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+ (/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/ML_Core/Utils/index.out) (root/ML_Core/Utils/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+
+(./root/ML_Core/Utils/pkg.tmp.tex
+Overfull \hbox (12.79999pt too wide) in alignment at lines 8--22
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 22
+ []
+
+(./root/ML_Core/Utils/Fat.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: Try loading font information for OT1+lmr on input line 10.
+ (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
+File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OML+lmm on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/omllmm.fd
+File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMS+lmsy on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd
+File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: Try loading font information for OMX+lmex on input line 10.
+
+
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd
+File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <12> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)) (./root/ML_Core/Utils/FatD.ecl.tex
+[2
+
+]) (./root/ML_Core/Utils/Gini.ecl.tex [3
+
+])
+(./root/ML_Core/Utils/SequenceInField.ecl.tex [4
+
+]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [5
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+
+(root/ML_Core/Utils/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6581 strings out of 494945
+ 95124 string characters out of 6181032
+ 184308 words of memory out of 5000000
+ 9768 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,8n,36p,530b,312s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/ML_Core/Utils/index.pdf (5 pages, 113437 bytes).
+PDF statistics:
+ 75 PDF objects out of 1000 (max. 8388607)
+ 63 compressed objects within 1 object stream
+ 22 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.pdf
new file mode 100644
index 0000000..1d9c404
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.tex
new file mode 100644
index 0000000..c9ba3e6
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/ML_Core/Utils/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/pkg.tmp.tex
new file mode 100644
index 0000000..dce583e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/pkg.tmp.tex
@@ -0,0 +1,28 @@
+\chapter*{\color{headtoc} Utils}
+\hypertarget{ecldoc:toc:root/ML_Core/Utils}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.Fat}{Fat.ecl} \\
+Will take a potentially sparse file d and fill in the missing \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.FatD}{FatD.ecl} \\
+Will take a potentially sparse file d and fill in the missing \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.Gini}{Gini.ecl} \\
+Creates a file of pivot/target pairs with a Gini impurity value \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.SequenceInField}{SequenceInField.ecl} \\
+Given a file which is sorted by the work item identifier and INFIELD (and possibly other values), add sequence numbers within the range of each infield \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Utils/Fat.ecl}
+\input{root/ML_Core/Utils/FatD.ecl}
+\input{root/ML_Core/Utils/Gini.ecl}
+\input{root/ML_Core/Utils/SequenceInField.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/pkg.toc.tex
new file mode 100644
index 0000000..7f74bd2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/Utils/pkg.toc.tex
@@ -0,0 +1,28 @@
+\chapter*{\color{headtoc} Utils}
+\hypertarget{ecldoc:toc:root/ML_Core/Utils}{}
+\hyperlink{ecldoc:toc:root/ML_Core}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.Fat}{Fat.ecl} \\
+Will take a potentially sparse file d and fill in the missing \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.FatD}{FatD.ecl} \\
+Will take a potentially sparse file d and fill in the missing \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.Gini}{Gini.ecl} \\
+Creates a file of pivot/target pairs with a Gini impurity value \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Utils.SequenceInField}{SequenceInField.ecl} \\
+Given a file which is sorted by the work item identifier and INFIELD (and possibly other values), add sequence numbers within the range of each infield \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/Utils/Fat.ecl}
+\input{root/ML_Core/Utils/FatD.ecl}
+\input{root/ML_Core/Utils/Gini.ecl}
+\input{root/ML_Core/Utils/SequenceInField.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.log
new file mode 100644
index 0000000..99152b2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.log
@@ -0,0 +1,461 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/ML_Core/index.tex
+(./root/ML_Core/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+) (root/ML_Core/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/ML_Core/index.out) (root/ML_Core/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+ (./root/ML_Core/pkg.tmp.tex
+(/usr/share/texmf/tex/latex/lm/ot1lmr.fd)
+(/usr/share/texmf/tex/latex/lm/omllmm.fd)
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd)
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)
+Overfull \hbox (12.79999pt too wide) in alignment at lines 39--60
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 60
+ []
+
+(./root/ML_Core/AppendID.ecl.tex [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 10.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 10.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 10.
+ (/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+))
+(./root/ML_Core/AppendSeqID.ecl.tex [2
+
+]) (./root/ML_Core/Config.ecl.tex
+[3
+
+] [4
+
+]) (./root/ML_Core/Constants.ecl.tex [5] [6
+
+])
+(./root/ML_Core/FieldAggregates.ecl.tex [7] [8
+
+] [9] [10] [11] [12])
+(./root/ML_Core/FromField.ecl.tex [13]) (./root/ML_Core/Generate.ecl.tex
+[14
+
+] [15
+
+]) (./root/ML_Core/ToField.ecl.tex [16] [17])
+(./root/ML_Core/Types.ecl.tex [18
+
+] [19
+
+] [20] [21] [22] [23] [24] [25] [26]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+
+[27]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+ (root/ML_Core/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6715 strings out of 494945
+ 97399 string characters out of 6181032
+ 186308 words of memory out of 5000000
+ 9769 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,9n,36p,373b,395s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/ML_Core/index.pdf (27 pages, 145659 bytes).
+PDF statistics:
+ 374 PDF objects out of 1000 (max. 8388607)
+ 335 compressed objects within 4 object streams
+ 135 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.pdf
new file mode 100644
index 0000000..6bf3c8e
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.tex
new file mode 100644
index 0000000..edf8789
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/ML_Core/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/pkg.tmp.tex
new file mode 100644
index 0000000..f61a33d
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/pkg.tmp.tex
@@ -0,0 +1,71 @@
+\chapter*{\color{headtoc} ML\_Core}
+\hypertarget{ecldoc:toc:root/ML_Core}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+ML\_Core
+ \\
+\hline
+Version &
+3.1.0
+ \\
+\hline
+Description &
+Common definitions for Machine Learning
+ \\
+\hline
+License &
+\url{See LICENSE.TXT}
+ \\
+\hline
+Copyright &
+Copyright (C) 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.AppendID}{AppendID.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.AppendSeqID}{AppendSeqID.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Config}{Config.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Constants}{Constants.ecl} \\
+Useful constants \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.FieldAggregates}{FieldAggregates.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.FromField}{FromField.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Generate}{Generate.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.ToField}{ToField.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Types}{Types.ecl} \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/AppendID.ecl}
+\input{root/ML_Core/AppendSeqID.ecl}
+\input{root/ML_Core/Config.ecl}
+\input{root/ML_Core/Constants.ecl}
+\input{root/ML_Core/FieldAggregates.ecl}
+\input{root/ML_Core/FromField.ecl}
+\input{root/ML_Core/Generate.ecl}
+\input{root/ML_Core/ToField.ecl}
+\input{root/ML_Core/Types.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/pkg.toc.tex
new file mode 100644
index 0000000..83f20f1
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/ML_Core/pkg.toc.tex
@@ -0,0 +1,83 @@
+\chapter*{\color{headtoc} ML\_Core}
+\hypertarget{ecldoc:toc:root/ML_Core}{}
+\hyperlink{ecldoc:toc:root}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+ML\_Core
+ \\
+\hline
+Version &
+3.1.0
+ \\
+\hline
+Description &
+Common definitions for Machine Learning
+ \\
+\hline
+License &
+\url{See LICENSE.TXT}
+ \\
+\hline
+Copyright &
+Copyright (C) 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:ML_Core.AppendID}{AppendID.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.AppendSeqID}{AppendSeqID.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Config}{Config.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Constants}{Constants.ecl} \\
+Useful constants \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.FieldAggregates}{FieldAggregates.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.FromField}{FromField.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Generate}{Generate.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.ToField}{ToField.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:ML_Core.Types}{Types.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:root/ML_Core/Interfaces}{Interfaces} \\
+\hline
+\hyperlink{ecldoc:toc:root/ML_Core/Math}{Math} \\
+\hline
+\hyperlink{ecldoc:toc:root/ML_Core/Tests}{Tests} \\
+\hline
+\hyperlink{ecldoc:toc:root/ML_Core/Utils}{Utils} \\
+\hline
+\end{longtable}
+}
+
+\input{root/ML_Core/AppendID.ecl}
+\input{root/ML_Core/AppendSeqID.ecl}
+\input{root/ML_Core/Config.ecl}
+\input{root/ML_Core/Constants.ecl}
+\input{root/ML_Core/FieldAggregates.ecl}
+\input{root/ML_Core/FromField.ecl}
+\input{root/ML_Core/Generate.ecl}
+\input{root/ML_Core/ToField.ecl}
+\input{root/ML_Core/Types.ecl}
+\input{root/ML_Core/Interfaces/pkg.toc}
+\input{root/ML_Core/Math/pkg.toc}
+\input{root/ML_Core/Tests/pkg.toc}
+\input{root/ML_Core/Utils/pkg.toc}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Apply2Elements.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Apply2Elements.ecl.tex
new file mode 100644
index 0000000..1483937
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Apply2Elements.ecl.tex
@@ -0,0 +1,78 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+Apply2Elements
+}
+\hypertarget{ecldoc:toc:PBblas.Apply2Elements}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+std.blas |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Apply2Elements}}
+
+\hypertarget{ecldoc:pbblas.apply2elements}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{Apply2Elements} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) X, IElementFunc f)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Apply a function to each element of the matrix Use PBblas.IElementFunc as the prototype function. Input and ouput may be a single matrix, or myriad matrixes with different work item ids.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( Layout\_Cell ) --- A matrix (or multiple matrices) in Layout\_Cell form
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{f}} ||| FUNCTION [ REAL8 , UNSIGNED4 , UNSIGNED4 ] ( REAL8 ) --- A function based on the IElementFunc prototype
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- A matrix (or multiple matrices) in Layout\_Cell form
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/IElementFunc
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Constants.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Constants.ecl.tex
new file mode 100644
index 0000000..9c90735
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Constants.ecl.tex
@@ -0,0 +1,685 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+Constants
+}
+\hypertarget{ecldoc:toc:PBblas.Constants}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Constants}}
+
+\hypertarget{ecldoc:PBblas.Constants}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Constants} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:pbblas.constants.block_minimum}{Block\_Minimum}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.block_nosplit}{Block\_NoSplit}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.block_maximum}{Block\_Maximum}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.block_vec_rows}{Block\_Vec\_Rows}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.dimension_incompat}{Dimension\_Incompat}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.dimension_incompatz}{Dimension\_IncompatZ}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.distribution_error}{Distribution\_Error}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.distribution_errorz}{Distribution\_ErrorZ}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_square}{Not\_Square}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_squarez}{Not\_SquareZ}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_positivedef}{Not\_PositiveDef}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_positivedefz}{Not\_PositiveDefZ}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_single_block}{Not\_Single\_Block}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_single_blockz}{Not\_Single\_BlockZ}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_block_vector}{Not\_Block\_Vector}
+: No Documentation Found
+\item \hyperlink{ecldoc:pbblas.constants.not_block_vectorz}{Not\_Block\_VectorZ}
+: No Documentation Found
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Block\_Minimum}}
+
+\hypertarget{ecldoc:pbblas.constants.block_minimum}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Block\_Minimum} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Block\_NoSplit}}
+
+\hypertarget{ecldoc:pbblas.constants.block_nosplit}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Block\_NoSplit} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Block\_Maximum}}
+
+\hypertarget{ecldoc:pbblas.constants.block_maximum}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Block\_Maximum} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Block\_Vec\_Rows}}
+
+\hypertarget{ecldoc:pbblas.constants.block_vec_rows}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Block\_Vec\_Rows} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Dimension\_Incompat}}
+
+\hypertarget{ecldoc:pbblas.constants.dimension_incompat}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Dimension\_Incompat} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING34} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Dimension\_IncompatZ}}
+
+\hypertarget{ecldoc:pbblas.constants.dimension_incompatz}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Dimension\_IncompatZ} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Distribution\_Error}}
+
+\hypertarget{ecldoc:pbblas.constants.distribution_error}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Distribution\_Error} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING32} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Distribution\_ErrorZ}}
+
+\hypertarget{ecldoc:pbblas.constants.distribution_errorz}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Distribution\_ErrorZ} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_Square}}
+
+\hypertarget{ecldoc:pbblas.constants.not_square}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_Square} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING20} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_SquareZ}}
+
+\hypertarget{ecldoc:pbblas.constants.not_squarez}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_SquareZ} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_PositiveDef}}
+
+\hypertarget{ecldoc:pbblas.constants.not_positivedef}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_PositiveDef} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING40} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_PositiveDefZ}}
+
+\hypertarget{ecldoc:pbblas.constants.not_positivedefz}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_PositiveDefZ} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_Single\_Block}}
+
+\hypertarget{ecldoc:pbblas.constants.not_single_block}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_Single\_Block} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING28} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_Single\_BlockZ}}
+
+\hypertarget{ecldoc:pbblas.constants.not_single_blockz}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_Single\_BlockZ} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_Block\_Vector}}
+
+\hypertarget{ecldoc:pbblas.constants.not_block_vector}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_Block\_Vector} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING25} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Not\_Block\_VectorZ}}
+
+\hypertarget{ecldoc:pbblas.constants.not_block_vectorz}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Constants}{Constants} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Not\_Block\_VectorZ} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+No Documentation Found
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{INTEGER8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Converted.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Converted.ecl.tex
new file mode 100644
index 0000000..e635fad
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Converted.ecl.tex
@@ -0,0 +1,301 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+Converted
+}
+\hypertarget{ecldoc:toc:PBblas.Converted}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Converted}}
+
+\hypertarget{ecldoc:PBblas.Converted}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Converted} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Module to convert between ML\_Core/Types Field layouts (i.e. NumericField and DiscreteField) and PBblas matrix layout (i.e. Layout\_Cell)
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:pbblas.converted.nftomatrix}{NFToMatrix}
+: Convert NumericField dataset to Matrix
+\item \hyperlink{ecldoc:pbblas.converted.dftomatrix}{DFToMatrix}
+: Convert DiscreteField dataset to Matrix
+\item \hyperlink{ecldoc:pbblas.converted.matrixtonf}{MatrixToNF}
+: Convert Matrix to NumericField dataset
+\item \hyperlink{ecldoc:pbblas.converted.matrixtodf}{MatrixToDF}
+: Convert Matrix to DiscreteField dataset
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+NFToMatrix}}
+
+\hypertarget{ecldoc:pbblas.converted.nftomatrix}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Converted}{Converted} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{NFToMatrix} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(NumericField) recs)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Convert NumericField dataset to Matrix
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{recs}} ||| TABLE ( NumericField ) --- Record Dataset in DATASET(NumericField) format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Matrix in DATASET(Layout\_Cell) format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] ML\_Core/Types.NumericField
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+DFToMatrix}}
+
+\hypertarget{ecldoc:pbblas.converted.dftomatrix}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Converted}{Converted} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{DFToMatrix} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(DiscreteField) recs)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Convert DiscreteField dataset to Matrix
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{recs}} ||| TABLE ( DiscreteField ) --- Record Dataset in DATASET(DiscreteField) format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Matrix in DATASET(Layout\_Cell) format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] ML\_Core/Types.DiscreteField
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+MatrixToNF}}
+
+\hypertarget{ecldoc:pbblas.converted.matrixtonf}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Converted}{Converted} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(NumericField)} & \textbf{MatrixToNF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) mat)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Convert Matrix to NumericField dataset
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{mat}} ||| TABLE ( Layout\_Cell ) --- Matrix in DATASET(Layout\_Cell) format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , REAL8 value \} )} --- NumericField Dataset
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] ML\_Core/Types.NumericField
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+MatrixToDF}}
+
+\hypertarget{ecldoc:pbblas.converted.matrixtodf}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Converted}{Converted} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(DiscreteField)} & \textbf{MatrixToDF} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) mat)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Convert Matrix to DiscreteField dataset
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{mat}} ||| TABLE ( Layout\_Cell ) --- Matrix in DATASET(Layout\_Cell) format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4 number , INTEGER4 value \} )} --- DiscreteField Dataset
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] ML\_Core/Types.DiscreteField
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/ExtractTri.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/ExtractTri.ecl.tex
new file mode 100644
index 0000000..d6f53a3
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/ExtractTri.ecl.tex
@@ -0,0 +1,82 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+ExtractTri
+}
+\hypertarget{ecldoc:toc:PBblas.ExtractTri}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+std.blas |
+PBblas.Types |
+PBblas.internal |
+PBblas.internal.Types |
+PBblas.internal.MatDims |
+PBblas.internal.Converted |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+ExtractTri}}
+
+\hypertarget{ecldoc:pbblas.extracttri}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{ExtractTri} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Triangle tri, Diagonal dt, DATASET(Layout\_Cell) A)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Extract the upper or lower triangle from the composite output from getrf (LU Factorization).
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{tri}} ||| UNSIGNED1 --- Triangle type: Upper or Lower (see Types.Triangle)
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{A}} ||| TABLE ( Layout\_Cell ) --- Matrix of cells. See Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{dt}} ||| UNSIGNED1 --- Diagonal type: Unit or non unit (see Types.Diagonal)
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Matrix of cells in Layout\_Cell format representing a triangular matrix (upper or lower)
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Std.PBblas.Types
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/HadamardProduct.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/HadamardProduct.ecl.tex
new file mode 100644
index 0000000..91dcc36
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/HadamardProduct.ecl.tex
@@ -0,0 +1,82 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+HadamardProduct
+}
+\hypertarget{ecldoc:toc:PBblas.HadamardProduct}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.internal |
+PBblas.internal.MatDims |
+PBblas.Types |
+PBblas.internal.Types |
+PBblas.internal.Converted |
+std.blas |
+std.system.Thorlib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+HadamardProduct}}
+
+\hypertarget{ecldoc:pbblas.hadamardproduct}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{HadamardProduct} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) X, DATASET(Layout\_Cell) Y)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Element-wise multiplication of X * Y. Supports the ''myriad'' style interface -- X and Y may contain multiple separate matrixes. Each X will be multiplied by the Y with the same work-item id. Note: This performs element-wise multiplication. For dot-product matrix multiplication, use PBblas.gemm.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{Y}} ||| TABLE ( Layout\_Cell ) --- A matrix (or multiple matrices) in Layout\_Cell form
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( Layout\_Cell ) --- A matrix (or multiple matrices) in Layout\_Cell form
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- A matrix (or multiple matrices) in Layout\_Cell form
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/IElementFunc.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/IElementFunc.ecl.tex
new file mode 100644
index 0000000..84bad0a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/IElementFunc.ecl.tex
@@ -0,0 +1,76 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+IElementFunc
+}
+\hypertarget{ecldoc:toc:PBblas.IElementFunc}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+IElementFunc}}
+
+\hypertarget{ecldoc:pbblas.ielementfunc}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} value\_t} & \textbf{IElementFunc} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (value\_t v, dimension\_t r, dimension\_t c)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Function prototype for a function to apply to each element of the distributed matrix Base your function on this prototype:
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{v}} ||| REAL8 --- Input value
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{c}} ||| UNSIGNED4 --- Column number (1 based)
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{r}} ||| UNSIGNED4 --- Row number (1 based)
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} --- Output value
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Apply2Elements
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/MatUtils.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/MatUtils.ecl.tex
new file mode 100644
index 0000000..4e48aad
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/MatUtils.ecl.tex
@@ -0,0 +1,241 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+MatUtils
+}
+\hypertarget{ecldoc:toc:PBblas.MatUtils}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+PBblas.internal |
+PBblas.internal.Types |
+PBblas.internal.MatDims |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+MatUtils}}
+
+\hypertarget{ecldoc:PBblas.MatUtils}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{MatUtils} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Provides various utility attributes for manipulating cell-based matrixes
+
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Std/PBblas/Types.Layout\_Cell
+\end{description}
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:pbblas.matutils.getworkitems}{GetWorkItems}
+: Get a list of work-item ids from a matrix containing one or more work items
+\item \hyperlink{ecldoc:pbblas.matutils.insertcols}{InsertCols}
+: Insert one or more columns of a fixed value into a matrix
+\item \hyperlink{ecldoc:pbblas.matutils.transpose}{Transpose}
+: Transpose a matrix This attribute supports the myriad interface
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+GetWorkItems}}
+
+\hypertarget{ecldoc:pbblas.matutils.getworkitems}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.MatUtils}{MatUtils} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_WI\_ID)} & \textbf{GetWorkItems} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) cells)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Get a list of work-item ids from a matrix containing one or more work items
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{cells}} ||| TABLE ( Layout\_Cell ) --- A matrix in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id \} )} --- DATASET(Layout\_WI\_ID), one record per work-item
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_WI\_ID
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+InsertCols}}
+
+\hypertarget{ecldoc:pbblas.matutils.insertcols}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.MatUtils}{MatUtils} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{InsertCols} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) M, UNSIGNED cols\_to\_insert=1, value\_t insert\_val=1)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Insert one or more columns of a fixed value into a matrix. Columns are inserted before the first original column. This attribute supports the myriad interface. Multiple independent matrixes can be represented by M.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{M}} ||| TABLE ( Layout\_Cell ) --- the input matrix
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{insert\_val}} ||| REAL8 --- the value for each cell of the new column(s), default 0
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{cols\_to\_insert}} ||| UNSIGNED8 --- the number of columns to insert, default 1
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- matrix in Layout\_Cell format with additional column(s)
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Transpose}}
+
+\hypertarget{ecldoc:pbblas.matutils.transpose}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.MatUtils}{MatUtils} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{Transpose} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) M)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Transpose a matrix This attribute supports the myriad interface. Multiple independent matrixes can be represented by M.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{M}} ||| TABLE ( Layout\_Cell ) --- A matrix represented as DATASET(Layout\_Cell)
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Transposed matrix in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Types.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Types.ecl.tex
new file mode 100644
index 0000000..1674f1a
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Types.ecl.tex
@@ -0,0 +1,508 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+Types
+}
+\hypertarget{ecldoc:toc:PBblas.Types}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+ML\_Core |
+ML\_Core.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} MODULE}
+Types}}
+
+\hypertarget{ecldoc:PBblas.Types}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Types} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Types for the Parallel Block Basic Linear Algebra Sub-programs support WARNING: attributes marked with WARNING can not be changed without making corresponding changes to the C++ attributes.
+
+
+
+
+
+
+
+\textbf{Children}
+\begin{enumerate}
+\item \hyperlink{ecldoc:pbblas.types.dimension_t}{dimension\_t}
+: Type for matrix dimensions
+\item \hyperlink{ecldoc:pbblas.types.partition_t}{partition\_t}
+: Type for partition id -- only supports up to 64K partitions
+\item \hyperlink{ecldoc:pbblas.types.work_item_t}{work\_item\_t}
+: Type for work-item id -- only supports up to 64K work items
+\item \hyperlink{ecldoc:pbblas.types.value_t}{value\_t}
+: Type for matrix cell values
+\item \hyperlink{ecldoc:pbblas.types.m_label_t}{m\_label\_t}
+: Type for matrix label
+\item \hyperlink{ecldoc:ecldoc-Triangle}{Triangle}
+: Enumeration for Triangle type
+\item \hyperlink{ecldoc:ecldoc-Diagonal}{Diagonal}
+: Enumeration for Diagonal type
+\item \hyperlink{ecldoc:ecldoc-Side}{Side}
+: Enumeration for Side type
+\item \hyperlink{ecldoc:pbblas.types.t_mu_no}{t\_mu\_no}
+: Type for matrix universe number
+\item \hyperlink{ecldoc:pbblas.types.layout_cell}{Layout\_Cell}
+: Layout for Matrix Cell Main representation of Matrix cell at interface to all PBBlas functions
+\item \hyperlink{ecldoc:pbblas.types.layout_norm}{Layout\_Norm}
+: Layout for Norm results
+\end{enumerate}
+
+\rule{\linewidth}{0.5pt}
+
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+dimension\_t}}
+
+\hypertarget{ecldoc:pbblas.types.dimension_t}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{dimension\_t} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Type for matrix dimensions. Uses UNSIGNED four as matrixes are not designed to support more than 4 B rows or columns.
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED4} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+partition\_t}}
+
+\hypertarget{ecldoc:pbblas.types.partition_t}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{partition\_t} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Type for partition id -- only supports up to 64K partitions
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED2} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+work\_item\_t}}
+
+\hypertarget{ecldoc:pbblas.types.work_item_t}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{work\_item\_t} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Type for work-item id -- only supports up to 64K work items
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED2} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+value\_t}}
+
+\hypertarget{ecldoc:pbblas.types.value_t}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{value\_t} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Type for matrix cell values WARNING: type used in C++ attribute
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{REAL8} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+m\_label\_t}}
+
+\hypertarget{ecldoc:pbblas.types.m_label_t}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{m\_label\_t} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Type for matrix label. Used for Matrix dimensions (see Layout\_Dims) and for partitions (see Layout\_Part)
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{STRING3} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Triangle}}
+
+\hypertarget{ecldoc:ecldoc-Triangle}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Triangle} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Enumeration for Triangle type WARNING: type used in C++ attribute
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED1} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Diagonal}}
+
+\hypertarget{ecldoc:ecldoc-Diagonal}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Diagonal} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Enumeration for Diagonal type WARNING: type used in C++ attribute
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED1} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+Side}}
+
+\hypertarget{ecldoc:ecldoc-Side}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Side} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Enumeration for Side type WARNING: type used in C++ attribute
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED1} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} ATTRIBUTE}
+t\_mu\_no}}
+
+\hypertarget{ecldoc:pbblas.types.t_mu_no}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{t\_mu\_no} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Type for matrix universe number Allow up to 64k matrices in one universe
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{UNSIGNED2} ---
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Layout\_Cell}}
+
+\hypertarget{ecldoc:pbblas.types.layout_cell}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Layout\_Cell} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Layout for Matrix Cell Main representation of Matrix cell at interface to all PBBlas functions. Matrixes are represented as DATASET(Layout\_Cell), where each cell describes the row and column position of the cell as well as its value. Only the non-zero cells need to be contained in the dataset in order to describe the matrix since all unspecified cells are considered to have a value of zero. The cell also contains a work-item number that allows multiple separate matrixes to be carried in the same dataset. This supports the ''myriad'' style interface that allows the same operations to be performed on many different sets of data at once. Note that these matrixes do not have an explicit size. They are sized implicitly, based on the maximum row and column presented in the data. A matrix can be converted to an explicit dense form (see matrix\_t) by using the utility module MakeR8Set. This module should only be used for known small matrixes (< 1M cells) or for partitions of a larger matrix. The Converted module provides utility functions to convert to and from a set of partitions (See Layout\_parts).
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi\_id}} ||| UNSIGNED2 --- Work Item Number -- An identifier from 1 to 64K-1 that separates and identifies individual matrixes
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{y}} ||| UNSIGNED4 --- 1-based column position within the matrix
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{x}} ||| UNSIGNED4 --- 1-based row position within the matrix
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{v}} ||| REAL8 --- Real value for the cell
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] matrix\_t
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Std/PBblas/MakeR8Set.ecl
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Std/PBblas/Converted.ecl WARNING: Used as C++ attribute. Do not change without corresponding changes to MakeR8Set.
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} RECORD}
+Layout\_Norm}}
+
+\hypertarget{ecldoc:pbblas.types.layout_norm}{}
+\hspace{0pt} \hyperlink{ecldoc:PBblas.Types}{Types} \textbackslash
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} } & \textbf{Layout\_Norm} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Layout for Norm results.
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{wi\_id}} ||| UNSIGNED2 --- Work Item Number -- An identifier from 1 to 64K-1 that separates and identifies individual matrixes
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{FIELD}}}] \textbf{\underline{v}} ||| REAL8 --- Real value for the norm
+\end{description}
+
+
+
+
+
+\rule{\linewidth}{0.5pt}
+
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Vector2Diag.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Vector2Diag.ecl.tex
new file mode 100644
index 0000000..7cdf856
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/Vector2Diag.ecl.tex
@@ -0,0 +1,79 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+Vector2Diag
+}
+\hypertarget{ecldoc:toc:PBblas.Vector2Diag}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.internal |
+PBblas.internal.MatDims |
+PBblas.Types |
+PBblas.internal.Types |
+PBblas.Constants |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+Vector2Diag}}
+
+\hypertarget{ecldoc:pbblas.vector2diag}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{Vector2Diag} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) X)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Convert a vector into a diagonal matrix. The typical notation is D = diag(V). The input X must be a 1 x N column vector or an N x 1 row vector. The resulting matrix, in either case will be N x N, with zero everywhere except the diagonal.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( Layout\_Cell ) --- A row or column vector (i.e. N x 1 or 1 x N) in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- An N x N matrix in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/asum.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/asum.ecl.tex
new file mode 100644
index 0000000..96ad693
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/asum.ecl.tex
@@ -0,0 +1,80 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+asum
+}
+\hypertarget{ecldoc:toc:PBblas.asum}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+PBblas.internal |
+PBblas.internal.Types |
+PBblas.internal.MatDims |
+PBblas.internal.Converted |
+std.blas |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+asum}}
+
+\hypertarget{ecldoc:pbblas.asum}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Norm)} & \textbf{asum} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) X)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Absolute sum -- the ''Entrywise'' 1-norm Compute SUM(ABS(X))
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( Layout\_Cell ) --- Matrix or set of matrices in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , REAL8 v \} )} --- DATASET(Layout\_Norm) with one record per work item
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/axpy.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/axpy.ecl.tex
new file mode 100644
index 0000000..7009265
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/axpy.ecl.tex
@@ -0,0 +1,77 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+axpy
+}
+\hypertarget{ecldoc:toc:PBblas.axpy}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+axpy}}
+
+\hypertarget{ecldoc:pbblas.axpy}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{axpy} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (value\_t alpha, DATASET(Layout\_Cell) X, DATASET(Layout\_Cell) Y)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Implements alpha*X + Y X and Y must have same shape
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{Y}} ||| TABLE ( Layout\_Cell ) --- Y matrix in DATASET(Layout\_Call) form
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{alpha}} ||| REAL8 --- Scalar multiplier for the X matrix
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( Layout\_Cell ) --- X matrix in DATASET(Layout\_Cell) form
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Matrix in DATASET(Layout\_Cell) form
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.layout\_cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/gemm.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/gemm.ecl.tex
new file mode 100644
index 0000000..839db65
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/gemm.ecl.tex
@@ -0,0 +1,86 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+gemm
+}
+\hypertarget{ecldoc:toc:PBblas.gemm}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+PBblas.internal |
+PBblas.internal.Types |
+std.blas |
+PBblas.internal.MatDims |
+std.system.Thorlib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+gemm}}
+
+\hypertarget{ecldoc:pbblas.gemm}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{gemm} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (BOOLEAN transposeA, BOOLEAN transposeB, value\_t alpha, DATASET(Layout\_Cell) A\_in, DATASET(Layout\_Cell) B\_in, DATASET(Layout\_Cell) C\_in=emptyC, value\_t beta=0.0)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Extended Parallel Block Matrix Multiplication Module Implements: Result = alpha * op(A)op(B) + beta * C. op is No Transpose or Transpose. Multiplies two matrixes A and B, with an optional pre-multiply transpose for each Optionally scales the product by the scalar ''alpha''. Then adds an optional C matrix to the product after scaling C by the scalar ''beta''. A, B, and C are specified as DATASET(Layout\_Cell), as is the Resulting matrix. Layout\_Cell describes a sparse matrix stored as a list of x, y, and value. This interface also provides a ''Myriad'' capability allowing multiple similar operations to be performed on independent sets of matrixes in parallel. This is done by use of the work-item id (wi\_id) in each cell of the matrixes. Cells with the same wi\_id are considered part of the same matrix. In the myriad form, each input matrix A, B, and (optionally) C can contain many independent matrixes. The wi\_ids are matched up such that each operation involves the A, B, and C with the same wi\_id. A and B must therefore contain the same set of wi\_ids, while C is optional for any wi\_id. The same parameters: alpha, beta, transposeA, and transposeB are used for all work-items. The result will contain cells from all provided work-items. Result has same shape as C if provided. Note that matrixes are not explicitly dimensioned. The shape is determined by the highest value of x and y for each work-item.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{alpha}} ||| REAL8 --- Scalar multiplier for alpha * A * B
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{beta}} ||| REAL8 --- A scalar multiplier for beta * C, scales the C matrix before addition. May be omitted.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{A\_in}} ||| TABLE ( Layout\_Cell ) --- 'A' matrix (multiplier) in Layout\_Cell format
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{C\_in}} ||| TABLE ( Layout\_Cell ) --- Same as above for the 'C' matrix (addend). May be omitted.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{B\_in}} ||| TABLE ( Layout\_Cell ) --- Same as above for the 'B' matrix (multiplicand)
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{transposeA}} ||| BOOLEAN --- Boolean indicating whether matrix A should be transposed before multiplying
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{transposeB}} ||| BOOLEAN --- Same as above but for matrix B
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Result matrix in Layout\_Cell format.
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/getrf.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/getrf.ecl.tex
new file mode 100644
index 0000000..7967523
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/getrf.ecl.tex
@@ -0,0 +1,81 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+getrf
+}
+\hypertarget{ecldoc:toc:PBblas.getrf}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+PBblas.internal |
+PBblas.internal.Types |
+std.blas |
+PBblas.internal.MatDims |
+std.system.Thorlib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+getrf}}
+
+\hypertarget{ecldoc:pbblas.getrf}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{getrf} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (DATASET(Layout\_Cell) A)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+LU Factorization Splits a matrix into Lower and Upper triangular factors Produces composite LU matrix for the diagonal blocks. Iterates through the matrix a row of blocks and column of blocks at a time. Partition A into M block rows and N block columns. The A11 cell is a single block. A12 is a single row of blocks with N-1 columns. A21 is a single column of blocks with M-1 rows. A22 is a sub-matrix of M-1 x N-1 blocks. | A11 A12 | | L11 0 | | U11 U12 | | A21 A22 | == | L21 L22 | * | 0 U22 | | L11*U11 L11*U12 | == | L21*U11 L21*U12 + L22*U22 | Based upon PB-BLAS: A set of parallel block basic linear algebra subprograms by Choi and Dongarra This module supports the ''Myriad'' style interface, allowing many independent problems to be worked on at once. The A matrix can contain multiple matrixes to be factored, indicated by different values for work-item id (wi\_id). Note: The returned matrix includes both the upper and lower factors. This matrix can be used directly by trsm which will only use the part indicated by trsm's 'triangle' parameter (i.e. upper or lower). To extract the upper or lower triangle explicitly for other purposes, use the ExtractTri function. When passing the Lower matrix to the triangle solver (trsm), set the ''Diagonal'' parameter to ''UnitTri''. This is necessary because both triangular matrixes returned from this function are packed into a square matrix with only one diagonal. By convention, The Lower triangle is assumed to be a Unit Triangle (diagonal all ones), so the diagonal contained in the returned matrix is for the Upper factor and must be ignored (i.e. assumed to be all ones) when referencing the Lower triangle.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{A}} ||| TABLE ( Layout\_Cell ) --- The input matrix in Types.Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Resulting factored matrix in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] ExtractTri
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.aux
new file mode 100644
index 0000000..313cb69
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{554.825pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.log
new file mode 100644
index 0000000..e33cfce
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.log
@@ -0,0 +1,488 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/PBblas/index.tex
+(./root/PBblas/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+) (root/PBblas/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/PBblas/index.out) (root/PBblas/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+ (./root/PBblas/pkg.tmp.tex
+(/usr/share/texmf/tex/latex/lm/ot1lmr.fd)
+(/usr/share/texmf/tex/latex/lm/omllmm.fd)
+(/usr/share/texmf/tex/latex/lm/omslmsy.fd)
+(/usr/share/texmf/tex/latex/lm/omxlmex.fd)
+(/usr/share/texmf/tex/latex/lm/t1lmtt.fd)
+Overfull \hbox (12.79999pt too wide) in alignment at lines 43--75
+ []
+ []
+
+
+Underfull \vbox (badness 10000) detected at line 75
+ []
+
+
+Overfull \hbox (12.79999pt too wide) in alignment at lines 75--95
+ []
+ []
+
+[1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+(./root/PBblas/Apply2Elements.ecl.tex [2]
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <17.28> on input line 9.
+LaTeX Font Info: External font `lmex10' loaded for size
+(Font) <10> on input line 9.
+LaTeX Font Info: Try loading font information for T1+lmss on input line 9.
+
+(/usr/share/texmf/tex/latex/lm/t1lmss.fd
+File: t1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)) (./root/PBblas/asum.ecl.tex [3
+
+])
+(./root/PBblas/axpy.ecl.tex [4
+
+]) (./root/PBblas/Constants.ecl.tex [5
+
+] [6
+
+]
+[7] [8] [9] [10] [11]) (./root/PBblas/Converted.ecl.tex [12] [13
+
+] [14])
+(./root/PBblas/ExtractTri.ecl.tex [15]) (./root/PBblas/gemm.ecl.tex [16
+
+]
+[17
+
+]) (./root/PBblas/getrf.ecl.tex [18] [19
+
+])
+(./root/PBblas/HadamardProduct.ecl.tex [20])
+(./root/PBblas/IElementFunc.ecl.tex [21
+
+] [22]) (./root/PBblas/MatUtils.ecl.tex
+[23
+
+] [24
+
+] [25]) (./root/PBblas/potrf.ecl.tex [26] [27
+
+])
+(./root/PBblas/scal.ecl.tex [28]) (./root/PBblas/tran.ecl.tex [29
+
+])
+(./root/PBblas/trsm.ecl.tex [30
+
+] [31] [32
+
+]) (./root/PBblas/Types.ecl.tex
+[33] [34
+
+] [35] [36] [37] [38]) (./root/PBblas/Vector2Diag.ecl.tex [39]))
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+
+[40
+
+]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+ (root/PBblas/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6776 strings out of 494945
+ 98309 string characters out of 6181032
+ 191308 words of memory out of 5000000
+ 9769 multiletter control sequences out of 15000+600000
+ 55598 words of font info for 44 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,10n,36p,1772b,422s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/PBblas/index.pdf (40 pages, 175416 bytes).
+PDF statistics:
+ 461 PDF objects out of 1000 (max. 8388607)
+ 408 compressed objects within 5 object streams
+ 164 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.pdf
new file mode 100644
index 0000000..2536e9d
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.tex
new file mode 100644
index 0000000..8b06a60
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/PBblas/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/pkg.tmp.tex
new file mode 100644
index 0000000..a98e6a7
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/pkg.tmp.tex
@@ -0,0 +1,114 @@
+\chapter*{\color{headtoc} PBblas}
+\hypertarget{ecldoc:toc:root/PBblas}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+PBblas
+ \\
+\hline
+Version &
+3.0.1
+ \\
+\hline
+Description &
+Parallel Block Basic Linear Algebra Subsystem
+ \\
+\hline
+License &
+\url{http://www.apache.org/licenses/LICENSE-2.0}
+ \\
+\hline
+Copyright &
+Copyright (C) 2016, 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+DependsOn &
+ML\_Core
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:PBblas.Apply2Elements}{Apply2Elements.ecl} \\
+Apply a function to each element of the matrix Use PBblas.IElementFunc as the prototype function \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.asum}{asum.ecl} \\
+Absolute sum -- the ''Entrywise'' 1-norm \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.axpy}{axpy.ecl} \\
+Implements alpha*X + Y \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Constants}{Constants.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Converted}{Converted.ecl} \\
+Module to convert between ML\_Core/Types Field layouts (i.e \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.ExtractTri}{ExtractTri.ecl} \\
+Extract the upper or lower triangle from the composite output from getrf (LU Factorization) \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.gemm}{gemm.ecl} \\
+Extended Parallel Block Matrix Multiplication Module Implements: Result = alpha * op(A)op(B) + beta * C \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.getrf}{getrf.ecl} \\
+LU Factorization Splits a matrix into Lower and Upper triangular factors Produces composite LU matrix for the diagonal blocks \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.HadamardProduct}{HadamardProduct.ecl} \\
+Element-wise multiplication of X * Y \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.IElementFunc}{IElementFunc.ecl} \\
+Function prototype for a function to apply to each element of the \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.MatUtils}{MatUtils.ecl} \\
+Provides various utility attributes for manipulating cell-based matrixes \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.potrf}{potrf.ecl} \\
+Implements Cholesky factorization of A = U**T * U if Triangular.Upper requested or A = L * L**T if Triangualr.Lower is requested \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.scal}{scal.ecl} \\
+Scale a matrix by a constant Result is alpha * X This supports a ''myriad'' style interface in that X may be a set of independent matrices separated by different work-item ids \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.tran}{tran.ecl} \\
+Transpose a matrix and sum into base matrix \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.trsm}{trsm.ecl} \\
+Partitioned block parallel triangular matrix solver \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Types}{Types.ecl} \\
+Types for the Parallel Block Basic Linear Algebra Sub-programs support WARNING: attributes marked with WARNING can not be changed without making corresponding changes to the C++ attributes \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Vector2Diag}{Vector2Diag.ecl} \\
+Convert a vector into a diagonal matrix \\
+\hline
+\end{longtable}
+}
+
+\input{root/PBblas/Apply2Elements.ecl}
+\input{root/PBblas/asum.ecl}
+\input{root/PBblas/axpy.ecl}
+\input{root/PBblas/Constants.ecl}
+\input{root/PBblas/Converted.ecl}
+\input{root/PBblas/ExtractTri.ecl}
+\input{root/PBblas/gemm.ecl}
+\input{root/PBblas/getrf.ecl}
+\input{root/PBblas/HadamardProduct.ecl}
+\input{root/PBblas/IElementFunc.ecl}
+\input{root/PBblas/MatUtils.ecl}
+\input{root/PBblas/potrf.ecl}
+\input{root/PBblas/scal.ecl}
+\input{root/PBblas/tran.ecl}
+\input{root/PBblas/trsm.ecl}
+\input{root/PBblas/Types.ecl}
+\input{root/PBblas/Vector2Diag.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/pkg.toc.tex
new file mode 100644
index 0000000..6ad76ea
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/pkg.toc.tex
@@ -0,0 +1,114 @@
+\chapter*{\color{headtoc} PBblas}
+\hypertarget{ecldoc:toc:root/PBblas}{}
+\hyperlink{ecldoc:toc:root}{Go Up}
+
+\begin{tabularx}{\textwidth}{|l|X|}
+\hline
+Name &
+PBblas
+ \\
+\hline
+Version &
+3.0.1
+ \\
+\hline
+Description &
+Parallel Block Basic Linear Algebra Subsystem
+ \\
+\hline
+License &
+\url{http://www.apache.org/licenses/LICENSE-2.0}
+ \\
+\hline
+Copyright &
+Copyright (C) 2016, 2017 HPCC Systems
+ \\
+\hline
+Authors &
+HPCCSystems
+ \\
+\hline
+DependsOn &
+ML\_Core
+ \\
+\hline
+Platform &
+6.2.0
+ \\
+\hline
+\end{tabularx}
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:PBblas.Apply2Elements}{Apply2Elements.ecl} \\
+Apply a function to each element of the matrix Use PBblas.IElementFunc as the prototype function \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.asum}{asum.ecl} \\
+Absolute sum -- the ''Entrywise'' 1-norm \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.axpy}{axpy.ecl} \\
+Implements alpha*X + Y \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Constants}{Constants.ecl} \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Converted}{Converted.ecl} \\
+Module to convert between ML\_Core/Types Field layouts (i.e \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.ExtractTri}{ExtractTri.ecl} \\
+Extract the upper or lower triangle from the composite output from getrf (LU Factorization) \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.gemm}{gemm.ecl} \\
+Extended Parallel Block Matrix Multiplication Module Implements: Result = alpha * op(A)op(B) + beta * C \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.getrf}{getrf.ecl} \\
+LU Factorization Splits a matrix into Lower and Upper triangular factors Produces composite LU matrix for the diagonal blocks \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.HadamardProduct}{HadamardProduct.ecl} \\
+Element-wise multiplication of X * Y \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.IElementFunc}{IElementFunc.ecl} \\
+Function prototype for a function to apply to each element of the \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.MatUtils}{MatUtils.ecl} \\
+Provides various utility attributes for manipulating cell-based matrixes \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.potrf}{potrf.ecl} \\
+Implements Cholesky factorization of A = U**T * U if Triangular.Upper requested or A = L * L**T if Triangualr.Lower is requested \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.scal}{scal.ecl} \\
+Scale a matrix by a constant Result is alpha * X This supports a ''myriad'' style interface in that X may be a set of independent matrices separated by different work-item ids \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.tran}{tran.ecl} \\
+Transpose a matrix and sum into base matrix \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.trsm}{trsm.ecl} \\
+Partitioned block parallel triangular matrix solver \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Types}{Types.ecl} \\
+Types for the Parallel Block Basic Linear Algebra Sub-programs support WARNING: attributes marked with WARNING can not be changed without making corresponding changes to the C++ attributes \\
+\hline
+\hyperlink{ecldoc:toc:PBblas.Vector2Diag}{Vector2Diag.ecl} \\
+Convert a vector into a diagonal matrix \\
+\hline
+\end{longtable}
+}
+
+\input{root/PBblas/Apply2Elements.ecl}
+\input{root/PBblas/asum.ecl}
+\input{root/PBblas/axpy.ecl}
+\input{root/PBblas/Constants.ecl}
+\input{root/PBblas/Converted.ecl}
+\input{root/PBblas/ExtractTri.ecl}
+\input{root/PBblas/gemm.ecl}
+\input{root/PBblas/getrf.ecl}
+\input{root/PBblas/HadamardProduct.ecl}
+\input{root/PBblas/IElementFunc.ecl}
+\input{root/PBblas/MatUtils.ecl}
+\input{root/PBblas/potrf.ecl}
+\input{root/PBblas/scal.ecl}
+\input{root/PBblas/tran.ecl}
+\input{root/PBblas/trsm.ecl}
+\input{root/PBblas/Types.ecl}
+\input{root/PBblas/Vector2Diag.ecl}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/potrf.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/potrf.ecl.tex
new file mode 100644
index 0000000..03a3b57
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/potrf.ecl.tex
@@ -0,0 +1,101 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+potrf
+}
+\hypertarget{ecldoc:toc:PBblas.potrf}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+std.blas |
+PBblas.internal |
+PBblas.internal.Types |
+PBblas.internal.MatDims |
+PBblas.internal.Converted |
+std.system.Thorlib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+potrf}}
+
+\hypertarget{ecldoc:pbblas.potrf}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{potrf} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Triangle tri, DATASET(Layout\_Cell) A\_in)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Implements Cholesky factorization of A = U**T * U if Triangular.Upper requested or A = L * L**T if Triangualr.Lower is requested. The matrix A must be symmetric positive definite.
+\begin{verbatim}
+
+ | A11 A12 | | L11 0 | | L11**T L21**T |
+ | A21 A22 | == | L21 L22 | * | 0 L22 |
+
+ | L11*L11**T L11*L21**T |
+ == | L21*L11**T L21*L21**T + L22*L22**T |
+ \end{verbatim}
+
+ So, use Cholesky on the first block to get L11. L21 = A21*L11**T**-1 which can be found by dtrsm on each column block A22' is A22 - L21*L21**T
+\par
+ Based upon PB-BLAS: A set of parallel block basic linear algebra subprograms by Choi and Dongarra
+
+
+\par
+ This module supports the ''Myriad'' style interface, allowing many independent problems to be worked on at once. The A matrix can contain multiple matrixes to be factored, indicated by different values for work-item id (wi\_id).
+
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{A\_in}} ||| TABLE ( Layout\_Cell ) --- The matrix or matrixes to be factored in Types.Layout\_Cell format
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{tri}} ||| UNSIGNED1 --- Types.Triangle enumeration indicating whether we are looking for the Upper or the Lower factor
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Triangular matrix in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Std.PBblas.Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Std.PBblas.Types.Triangle
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/scal.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/scal.ecl.tex
new file mode 100644
index 0000000..27cb99e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/scal.ecl.tex
@@ -0,0 +1,76 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+scal
+}
+\hypertarget{ecldoc:toc:PBblas.scal}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+scal}}
+
+\hypertarget{ecldoc:pbblas.scal}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{scal} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (value\_t alpha, DATASET(Layout\_Cell) X)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Scale a matrix by a constant Result is alpha * X This supports a ''myriad'' style interface in that X may be a set of independent matrices separated by different work-item ids.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{alpha}} ||| REAL8 --- A scalar multiplier
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{X}} ||| TABLE ( Layout\_Cell ) --- The matrix(es) to be scaled in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Matrix in Layout\_Cell form, of the same shape as X
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.Layout\_Cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/tran.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/tran.ecl.tex
new file mode 100644
index 0000000..aa93a0b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/tran.ecl.tex
@@ -0,0 +1,84 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+tran
+}
+\hypertarget{ecldoc:toc:PBblas.tran}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+PBblas.internal |
+PBblas.internal.Types |
+PBblas.internal.MatDims |
+PBblas.internal.Converted |
+std.blas |
+std.system.Thorlib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+tran}}
+
+\hypertarget{ecldoc:pbblas.tran}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{tran} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (value\_t alpha, DATASET(Layout\_Cell) A, value\_t beta=0, DATASET(Layout\_Cell) C=empty\_c)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Transpose a matrix and sum into base matrix result <== alpha * A**t + beta * C, A is n by m, C is m by n A**T (A Transpose) and C must have same shape
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{C}} ||| TABLE ( Layout\_Cell ) --- C matrix in DATASET(Layout\_Call) form
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{alpha}} ||| REAL8 --- Scalar multiplier for the A**T matrix
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{A}} ||| TABLE ( Layout\_Cell ) --- A matrix in DATASET(Layout\_Cell) form
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{beta}} ||| REAL8 --- Scalar multiplier for the C matrix
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- Matrix in DATASET(Layout\_Cell) form alpha * A**T + beta * C
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] PBblas/Types.layout\_cell
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/trsm.ecl.tex b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/trsm.ecl.tex
new file mode 100644
index 0000000..ee16534
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/PBblas/trsm.ecl.tex
@@ -0,0 +1,89 @@
+\chapter*{\color{headfile}
+{\large PBblas\slash\hspace{0pt}}
+ \\
+trsm
+}
+\hypertarget{ecldoc:toc:PBblas.trsm}{}
+\hyperlink{ecldoc:toc:root/PBblas}{Go Up}
+
+\section*{\underline{\textsf{IMPORTS}}}
+\begin{doublespace}
+{\large
+PBblas |
+PBblas.Types |
+std.blas |
+PBblas.internal |
+PBblas.internal.Types |
+PBblas.internal.MatDims |
+PBblas.internal.Converted |
+std.system.Thorlib |
+}
+\end{doublespace}
+
+\section*{\underline{\textsf{DESCRIPTIONS}}}
+\subsection*{\textsf{\colorbox{headtoc}{\color{white} FUNCTION}
+trsm}}
+
+\hypertarget{ecldoc:pbblas.trsm}{}
+
+{\renewcommand{\arraystretch}{1.5}
+\begin{tabularx}{\textwidth}{|>{\raggedright\arraybackslash}l|X|}
+\hline
+\hspace{0pt}\mytexttt{\color{red} DATASET(Layout\_Cell)} & \textbf{trsm} \\
+\hline
+\multicolumn{2}{|>{\raggedright\arraybackslash}X|}{\hspace{0pt}\mytexttt{\color{param} (Side s, Triangle tri, BOOLEAN transposeA, Diagonal diag, value\_t alpha, DATASET(Layout\_Cell) A\_in, DATASET(Layout\_Cell) B\_in)}} \\
+\hline
+\end{tabularx}
+}
+
+\par
+
+
+
+
+
+Partitioned block parallel triangular matrix solver. Solves for X using: AX = B or XA = B A is is a square triangular matrix, X and B have the same dimensions. A may be an upper triangular matrix (UX = B or XU = B), or a lower triangular matrix (LX = B or XL = B). Allows optional transposing and scaling of A. Partially based upon an approach discussed by MJ DAYDE, IS DUFF, AP CERFACS. A Parallel Block implementation of Level-3 BLAS for MIMD Vector Processors ACM Tran. Mathematical Software, Vol 20, No 2, June 1994 pp 178-193 and other papers about PB-BLAS by Choi and Dongarra This module supports the ''Myriad'' style interface, allowing many independent problems to be worked on at once. Corresponding A and B matrixes are related by a common work-item identifier (wi\_id) within each cell of the matrix. The returned X matrix will contain cells for the same set of work-items as specified for the A and B matrices.
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{alpha}} ||| REAL8 --- Multiplier to scale A
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{transposeA}} ||| BOOLEAN --- Boolean indicating whether or not to transpose the A matrix before solving
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{A\_in}} ||| TABLE ( Layout\_Cell ) --- The A matrix in Layout\_Cell format
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{tri}} ||| UNSIGNED1 --- Types.Triangle enumeration indicating whether we are solving an Upper or Lower triangle.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{B\_in}} ||| TABLE ( Layout\_Cell ) --- The B matrix in Layout\_Cell format
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{diag}} ||| UNSIGNED1 --- Types.Diagonal enumeration indicating whether A is a unit matrix or not. This is primarily used after factoring matrixes using getrf (LU factorization). That module produces a factored matrix stored within the same space as the original matrix. Since the diagonal is used by both factors, by convention, the Lower triangle has a unit matrix (diagonal all 1's) while the Upper triangle uses the diagonal cells. Setting this to UnitTri, causes the contents of the diagonal to be ignored, and assumed to be 1. NotUnitTri should be used for most other cases.
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{PARAMETER}}}] \textbf{\underline{s}} ||| UNSIGNED1 --- Types.Side enumeration indicating whether we are solving AX = B or XA = B
+\end{description}
+
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{RETURN}}}] \textbf{TABLE ( \{ UNSIGNED2 wi\_id , UNSIGNED4 x , UNSIGNED4 y , REAL8 v \} )} --- X solution matrix in Layout\_Cell format
+\end{description}
+
+
+
+
+
+
+\par
+\begin{description}
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Types.Layout\_Cell
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Types.Triangle
+\item [\colorbox{tagtype}{\color{white} \textbf{\textsf{SEE}}}] Types.Side
+\end{description}
+
+
+
+
+\rule{\linewidth}{0.5pt}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/index.aux b/testing/eclbundles/ml-bundles-docs/tex/root/index.aux
new file mode 100644
index 0000000..a14920f
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/index.aux
@@ -0,0 +1,20 @@
+\relax
+\providecommand\hyper@newdestlabel[2]{}
+\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
+\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
+\global\let\oldcontentsline\contentsline
+\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
+\global\let\oldnewlabel\newlabel
+\gdef\newlabel#1#2{\newlabelxx{#1}#2}
+\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
+\AtEndDocument{\ifx\hyper@anchor\@undefined
+\let\contentsline\oldcontentsline
+\let\newlabel\oldnewlabel
+\fi}
+\fi}
+\global\let\hyper@last\relax
+\gdef\HyperFirstAtBeginDocument#1{#1}
+\providecommand\HyField@AuxAddToFields[1]{}
+\providecommand\HyField@AuxAddToCoFields[2]{}
+\gdef \LT@i {\LT@entry
+ {1}{0.0pt}}
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/index.log b/testing/eclbundles/ml-bundles-docs/tex/root/index.log
new file mode 100644
index 0000000..e769f7e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/index.log
@@ -0,0 +1,416 @@
+This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016/Debian) (preloaded format=pdflatex 2017.6.26) 12 AUG 2017 16:37
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**root/index.tex
+(./root/index.tex
+LaTeX2e <2017/01/01> patch level 3
+Babel <3.9r> and hyphenation patterns for 3 language(s) loaded.
+(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
+Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
+(/usr/share/texlive/texmf-dist/tex/latex/base/size12.clo
+File: size12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
+)
+\c@part=\count79
+\c@chapter=\count80
+\c@section=\count81
+\c@subsection=\count82
+\c@subsubsection=\count83
+\c@paragraph=\count84
+\c@subparagraph=\count85
+\c@figure=\count86
+\c@table=\count87
+\abovecaptionskip=\skip41
+\belowcaptionskip=\skip42
+\bibindent=\dimen102
+)
+(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty
+Package: fontenc 2017/02/22 v2.0g Standard LaTeX package
+
+(/usr/share/texlive/texmf-dist/tex/latex/base/t1enc.def
+File: t1enc.def 2017/02/22 v2.0g Standard LaTeX file
+LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
+))
+(/usr/share/texmf/tex/latex/lm/lmodern.sty
+Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
+LaTeX Font Info: Overwriting symbol font `operators' in version `normal'
+(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
+LaTeX Font Info: Overwriting symbol font `letters' in version `normal'
+(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `normal'
+(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
+LaTeX Font Info: Overwriting symbol font `operators' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
+LaTeX Font Info: Overwriting symbol font `letters' in version `bold'
+(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27.
+LaTeX Font Info: Overwriting symbol font `symbols' in version `bold'
+(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
+LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold'
+(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal'
+(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal'
+(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
+LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold'
+(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
+LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold'
+(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
+LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold'
+(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
+LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold'
+(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
+Package: geometry 2010/09/12 v5.6 Page Geometry
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
+\KV@toks@=\toks14
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifpdf.sty
+Package: ifpdf 2016/05/14 v3.1 Provides the ifpdf switch
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ifvtex.sty
+Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
+Package ifvtex Info: VTeX not detected.
+)
+(/usr/share/texlive/texmf-dist/tex/generic/ifxetex/ifxetex.sty
+Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
+)
+\Gm@cnth=\count88
+\Gm@cntv=\count89
+\c@Gm@tempcnt=\count90
+\Gm@bindingoffset=\dimen103
+\Gm@wd@mp=\dimen104
+\Gm@odd@mp=\dimen105
+\Gm@even@mp=\dimen106
+\Gm@layoutwidth=\dimen107
+\Gm@layoutheight=\dimen108
+\Gm@layouthoffset=\dimen109
+\Gm@layoutvoffset=\dimen110
+\Gm@dimlist=\toks15
+)
+(/home/sarthak/texmf/tex/latex/setspace/setspace.sty
+Package: setspace 2011/12/19 v6.7a set line spacing
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/longtable.sty
+Package: longtable 2014/10/28 v4.11 Multi-page Table package (DPC)
+\LTleft=\skip43
+\LTright=\skip44
+\LTpre=\skip45
+\LTpost=\skip46
+\LTchunksize=\count91
+\LTcapwidth=\dimen111
+\LT@head=\box26
+\LT@firsthead=\box27
+\LT@foot=\box28
+\LT@lastfoot=\box29
+\LT@cols=\count92
+\LT@rows=\count93
+\c@LT@tables=\count94
+\c@LT@chunks=\count95
+\LT@p@ftn=\toks16
+)
+(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
+Package: tabularx 2016/02/03 v2.11 `tabularx' package (DPC)
+
+(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
+Package: array 2016/10/06 v2.4d Tabular extension package (FMi)
+\col@sep=\dimen112
+\extrarowheight=\dimen113
+\NC@list=\toks17
+\extratabsurround=\skip47
+\backup@length=\skip48
+)
+\TX@col@width=\dimen114
+\TX@old@table=\dimen115
+\TX@old@col=\dimen116
+\TX@target=\dimen117
+\TX@delta=\dimen118
+\TX@cols=\count96
+\TX@ftn=\toks18
+)
+(/home/sarthak/texmf/tex/latex/xcolor/xcolor.sty
+Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
+File: color.cfg 2016/01/02 v1.6 sample color configuration
+)
+Package xcolor Info: Driver file: pdftex.def on input line 225.
+
+(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
+File: pdftex.def 2017/01/12 v0.06k Graphics/color for pdfTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/infwarerr.sty
+Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
+Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
+)
+\Gread@gobject=\count97
+)
+Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
+Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
+Package xcolor Info: Model `RGB' extended on input line 1364.
+Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
+Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
+Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
+Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
+Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
+Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
+)
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty
+Package: hyperref 2016/06/24 v6.83q Hypertext links for LaTeX
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
+Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
+
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
+Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
+Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
+Package hobsub Info: Skipping package `infwarerr' (already loaded).
+Package hobsub Info: Skipping package `ltxcmds' (already loaded).
+Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
+Package ifluatex Info: LuaTeX not detected.
+Package hobsub Info: Skipping package `ifvtex' (already loaded).
+Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
+Package hobsub Info: Skipping package `ifpdf' (already loaded).
+Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
+Package etexcmds Info: Could not find \expanded.
+(etexcmds) That can mean that you are not using pdfTeX 1.50 or
+(etexcmds) that some package has redefined \expanded.
+(etexcmds) In the latter case, load this package earlier.
+Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
+Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
+Package: pdftexcmds 2016/05/21 v0.22 Utility functions of pdfTeX for LuaTeX (HO
+)
+Package pdftexcmds Info: LuaTeX not detected.
+Package pdftexcmds Info: \pdf@primitive is available.
+Package pdftexcmds Info: \pdf@ifprimitive is available.
+Package pdftexcmds Info: \pdfdraftmode found.
+Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
+Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO
+)
+Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
+Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
+)
+Package hobsub Info: Skipping package `hobsub' (already loaded).
+Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
+Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
+Package: xcolor-patch 2016/05/16 xcolor patch
+Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
+Package atveryend Info: \enddocument detected (standard20110627).
+Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
+Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
+Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/auxhook.sty
+Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
+)
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/kvoptions.sty
+Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
+)
+\@linkdim=\dimen119
+\Hy@linkcounter=\count98
+\Hy@pagecounter=\count99
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def
+File: pd1enc.def 2016/06/24 v6.83q Hyperref: PDFDocEncoding definition (HO)
+)
+\Hy@SavedSpaceFactor=\count100
+
+(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/hyperref.cfg
+File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
+)
+Package hyperref Info: Hyper figures OFF on input line 4486.
+Package hyperref Info: Link nesting OFF on input line 4491.
+Package hyperref Info: Hyper index ON on input line 4494.
+Package hyperref Info: Plain pages OFF on input line 4501.
+Package hyperref Info: Backreferencing OFF on input line 4506.
+Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
+Package hyperref Info: Bookmarks ON on input line 4735.
+\c@Hy@tempcnt=\count101
+
+(/usr/share/texlive/texmf-dist/tex/latex/url/url.sty
+\Urlmuskip=\muskip10
+Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
+)
+LaTeX Info: Redefining \url on input line 5088.
+\XeTeXLinkMargin=\dimen120
+\Fld@menulength=\count102
+\Field@Width=\dimen121
+\Fld@charsize=\dimen122
+Package hyperref Info: Hyper figures OFF on input line 6342.
+Package hyperref Info: Link nesting OFF on input line 6347.
+Package hyperref Info: Hyper index ON on input line 6350.
+Package hyperref Info: backreferencing OFF on input line 6357.
+Package hyperref Info: Link coloring OFF on input line 6362.
+Package hyperref Info: Link coloring with OCG OFF on input line 6367.
+Package hyperref Info: PDF/A mode OFF on input line 6372.
+LaTeX Info: Redefining \ref on input line 6412.
+LaTeX Info: Redefining \pageref on input line 6416.
+\Hy@abspage=\count103
+\c@Item=\count104
+\c@Hfootnote=\count105
+)
+
+Package hyperref Message: Driver (autodetected): hpdftex.
+
+(/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def
+File: hpdftex.def 2016/06/24 v6.83q Hyperref driver for pdfTeX
+\Fld@listcount=\count106
+\c@bookmark@seq@number=\count107
+
+(/usr/share/texlive/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
+Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
+Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
+82.
+)
+\Hy@SectionHShift=\skip49
+)
+Package hyperref Info: Option `colorlinks' set `true' on input line 14.
+
+(/home/sarthak/texmf/tex/latex/titlesec/titlesec.sty
+Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
+\ttl@box=\box30
+\beforetitleunit=\skip50
+\aftertitleunit=\skip51
+\ttl@plus=\dimen123
+\ttl@minus=\dimen124
+\ttl@toksa=\toks19
+\titlewidth=\dimen125
+\titlewidthlast=\dimen126
+\titlewidthfirst=\dimen127
+) (root/index.aux)
+\openout1 = `index.aux'.
+
+LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 37.
+LaTeX Font Info: ... okay on input line 37.
+LaTeX Font Info: Try loading font information for T1+lmr on input line 37.
+
+(/usr/share/texmf/tex/latex/lm/t1lmr.fd
+File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
+)
+*geometry* driver: auto-detecting
+*geometry* detected driver: pdftex
+*geometry* verbose mode - [ preamble ] result:
+* driver: pdftex
+* paper:
+* layout:
+* layoutoffset:(h,v)=(0.0pt,0.0pt)
+* modes:
+* h-part:(L,W,R)=(36.135pt, 542.02501pt, 36.135pt)
+* v-part:(T,H,B)=(36.135pt, 722.7pt, 36.135pt)
+* \paperwidth=614.295pt
+* \paperheight=794.96999pt
+* \textwidth=542.02501pt
+* \textheight=722.7pt
+* \oddsidemargin=-36.135pt
+* \evensidemargin=-36.135pt
+* \topmargin=-73.135pt
+* \headheight=12.0pt
+* \headsep=25.0pt
+* \topskip=12.0pt
+* \footskip=30.0pt
+* \marginparwidth=44.0pt
+* \marginparsep=10.0pt
+* \columnsep=10.0pt
+* \skip\footins=10.8pt plus 4.0pt minus 2.0pt
+* \hoffset=0.0pt
+* \voffset=0.0pt
+* \mag=1000
+* \@twocolumnfalse
+* \@twosidefalse
+* \@mparswitchfalse
+* \@reversemarginfalse
+* (1in=72.27pt=25.4mm, 1cm=28.453pt)
+
+(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
+[Loading MPS to PDF converter (version 2006.09.02).]
+\scratchcounter=\count108
+\scratchdimen=\dimen128
+\scratchbox=\box31
+\nofMPsegments=\count109
+\nofMParguments=\count110
+\everyMPshowfont=\toks20
+\MPscratchCnt=\count111
+\MPscratchDim=\dimen129
+\MPnumerator=\count112
+\makeMPintoPDFobject=\count113
+\everyMPtoPDFconversion=\toks21
+)
+\AtBeginShipoutBox=\box32
+Package hyperref Info: Link coloring ON on input line 37.
+ (/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty
+Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
+
+(/usr/share/texlive/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
+Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
+)
+\c@section@level=\count114
+)
+LaTeX Info: Redefining \ref on input line 37.
+LaTeX Info: Redefining \pageref on input line 37.
+LaTeX Info: Redefining \nameref on input line 37.
+
+(root/index.out) (root/index.out)
+\@outlinefile=\write3
+\openout3 = `index.out'.
+
+ (./root/pkg.tmp.tex
+Underfull \vbox (badness 10000) detected at line 10
+ []
+
+)
+Package atveryend Info: Empty hook `BeforeClearDocument' on input line 43.
+ [1
+
+
+{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}]
+Package atveryend Info: Empty hook `AfterLastShipout' on input line 43.
+ (root/index.aux)
+Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 43.
+Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 43.
+Package rerunfilecheck Info: File `index.out' has not changed.
+(rerunfilecheck) Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
+Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 43.
+ )
+Here is how much of TeX's memory you used:
+ 6390 strings out of 494945
+ 91248 string characters out of 6181032
+ 181304 words of memory out of 5000000
+ 9643 multiletter control sequences out of 15000+600000
+ 19727 words of font info for 21 fonts, out of 8000000 for 9000
+ 14 hyphenation exceptions out of 8191
+ 28i,5n,36p,237b,312s stack positions out of 5000i,500n,10000p,200000b,80000s
+pdfTeX warning (dest): name{ecldoc:toc:} has been referenced but does not exi
+st, replaced by a fixed one
+
+{/usr/share/texmf/fonts/enc/dvips/lm/lm-ec.enc}
+Output written on root/index.pdf (1 page, 38948 bytes).
+PDF statistics:
+ 27 PDF objects out of 1000 (max. 8388607)
+ 21 compressed objects within 1 object stream
+ 6 named destinations out of 1000 (max. 500000)
+ 1 words of extra memory for PDF output out of 10000 (max. 10000000)
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/index.out b/testing/eclbundles/ml-bundles-docs/tex/root/index.out
new file mode 100644
index 0000000..e69de29
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/index.pdf b/testing/eclbundles/ml-bundles-docs/tex/root/index.pdf
new file mode 100644
index 0000000..2d89574
Binary files /dev/null and b/testing/eclbundles/ml-bundles-docs/tex/root/index.pdf differ
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/index.tex b/testing/eclbundles/ml-bundles-docs/tex/root/index.tex
new file mode 100644
index 0000000..9224786
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/index.tex
@@ -0,0 +1,43 @@
+\documentclass[12pt]{report}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\usepackage[margin=0.5in]{geometry}
+\usepackage{setspace}
+\usepackage{longtable, tabularx}
+\usepackage{xcolor}
+\definecolor{headfile}{HTML}{1034A6}
+\definecolor{headtoc}{HTML}{041051}
+\definecolor{tagtype}{HTML}{c15517}
+\definecolor{param}{HTML}{550982}
+
+\usepackage{hyperref}
+\hypersetup{colorlinks=true,linkcolor=blue}
+
+\usepackage{titlesec}
+\titleformat{\chapter}[display]
+{\normalfont\huge\bfseries\centering}{\chaptertitlename\ \thechapter}{20pt}{\Huge}[\vspace{2ex}\titlerule]
+\titlespacing*{\chapter}{0pt}{-30pt}{40pt}
+
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\baselineskip}%
+
+\lccode`\(`\(
+\lccode`\)`\)
+\lccode`\[`\[
+\lccode`\]`\]
+\catcode`\_=12
+\lccode`\_`\_
+
+\makeatletter
+\let\@noitemerr\relax
+\makeatother
+
+\DeclareTextFontCommand{\mytexttt}{\ttfamily\hyphenchar\font=45\relax}
+
+\begin{document}
+\sloppy
+\raggedright
+
+\input{root/pkg.tmp.tex}
+
+\end{document}
\ No newline at end of file
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/pkg.tmp.tex b/testing/eclbundles/ml-bundles-docs/tex/root/pkg.tmp.tex
new file mode 100644
index 0000000..ce4c604
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/pkg.tmp.tex
@@ -0,0 +1,12 @@
+\chapter*{\color{headtoc} root}
+\hypertarget{ecldoc:toc:root}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\end{longtable}
+}
+
diff --git a/testing/eclbundles/ml-bundles-docs/tex/root/pkg.toc.tex b/testing/eclbundles/ml-bundles-docs/tex/root/pkg.toc.tex
new file mode 100644
index 0000000..e2f3bb2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/tex/root/pkg.toc.tex
@@ -0,0 +1,24 @@
+\chapter*{\color{headtoc} root}
+\hypertarget{ecldoc:toc:root}{}
+\hyperlink{ecldoc:toc:}{Go Up}
+
+
+\section*{Table of Contents}
+{\renewcommand{\arraystretch}{1.5}
+\begin{longtable}{|p{\textwidth}|}
+\hline
+\hyperlink{ecldoc:toc:root/LinearRegression}{LinearRegression} \\
+\hline
+\hyperlink{ecldoc:toc:root/LogisticRegression}{LogisticRegression} \\
+\hline
+\hyperlink{ecldoc:toc:root/ML_Core}{ML\_Core} \\
+\hline
+\hyperlink{ecldoc:toc:root/PBblas}{PBblas} \\
+\hline
+\end{longtable}
+}
+
+\input{root/LinearRegression/pkg.toc}
+\input{root/LogisticRegression/pkg.toc}
+\input{root/ML_Core/pkg.toc}
+\input{root/PBblas/pkg.toc}
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LinearRegression/OLS.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LinearRegression/OLS.ecl.txt
new file mode 100644
index 0000000..80a86fd
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LinearRegression/OLS.ecl.txt
@@ -0,0 +1,853 @@
+IMPORTS
+=======
+
+
+ML_Core
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+PBblas
+PBblas.Types <../PBblas/Types.ecl.txt>
+PBblas.Converted <../PBblas/Converted.ecl.txt>
+PBblas.MatUtils <../PBblas/MatUtils.ecl.txt>
+ML_Core.Math
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+MODULE : OLS(DATASET(NumericField) X=empty_data, DATASET(NumericField) Y=empty_data)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear
+Regression Regression learns a function that maps a set of input data
+(independents) to one or more output variables (dependents). The resulting
+learned function is known as the model. That model can then be used
+repetitively to predict (i.e. estimate) the output value(s) based on new
+input data. Two major use cases are supported: 1) Learn and return a model
+2) Use an existing (e.g. persisted) model to predict new values for Y Of
+course, both can be done in a single run. Alternatively, the model can be
+persisted and used indefinitely for prediction of Y values, as long as the
+record format has not changed, and the original training data remains
+representative of the population. OLS supports any number of independent
+variables (Multiple Regression) and multiple dependent variables
+(Multivariate Regression). In this way, multiple variables' values can be
+predicted from the same input (i.e. independent) data. Training data is
+presented as parameters to this module. When using a previously persisted
+model (use case 2 above), these parameters should be omitted. This module
+provides a rich set of analytics to assess the usefulness of the resulting
+linear regression model, and to determine the best subset of independent
+variables to include in the model. These include: For the whole model: -
+Analysis of Variance (ANOVA) - R-squared - Adjusted R-squared - F-Test -
+Akaike Information Criterion (AIC) For each coefficient: - Standard Error
+(SE) - T-statistic - P-value - Confidence Interval
+
+Parameter : Y TABLE ( NumericField ) --- The dependent variable
+ training data in DATASET(NumericField) format.
+ Each observation (e.g. record) is identified by
+ 'id', and each feature is identified by field
+ number. Omit this parameter when predicting from a
+ persisted model.
+
+Parameter : X TABLE ( NumericField ) --- The independent
+ variable training data in DATASET(NumericField)
+ format. Each observation (e.g. record) is
+ identified by 'id', and each feature is identified
+ by field number (i.e. 'number'). Omit this
+ parameter when predicting from a persisted model.
+
+Parent : ML_Core.Interfaces.IRegression
+ <../ML_Core/Interfaces/IRegression.ecl.txt>
+
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : DATASET(Layout_Model) GetModel ||| OVERRIDE
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | GetModel Returns the learned model that maps X's to Y's. In the case of
+ | OLS, the model represents a set of Betas which are the coefficients of the
+ | linear model: Beta0 * 1 + Beta1 * Field1 + Beta2 * Field2 ... The ID of
+ | each model record specifies to which Y variable the coefficient applies.
+ | The Field Number ('number') indicates to which field of X the beta is to be
+ | applied. Field number 1 provides the intercept portion of the linear model
+ | and is always multiplied by 1. Note that if multiple work-items are
+ | provided within X and Y, there will be multiple models returned. The models
+ | can be separated by their work item id (i.e. 'wi'). A single model can be
+ | extracted from a myriad model by using e.g., model(wi=myWI_id). GetModel
+ | should not be called when predicting using a previously persisted model
+ | (i.e. when training data was not passed to the module.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 value } ) Model in
+ | DATASET(Layout_Model) format
+ |
+ | See : ML_core/Types.Layout_Model
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : DATASET(NumericField) Betas(DATASET(Layout_Model) model=GetModel)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Return raw Beta values as numeric fields Extracts Beta values from the
+ | model. Can be used during training and prediction phases. For use during
+ | training phase, the 'model' parameter can be omitted. GetModel will be
+ | called to retrieve the model based on the training data. For use during
+ | prediction phase, a previously persisted model should be provided. The
+ | 'number' field of the returned NumericField records specifies to which Y
+ | the coefficient applies. The 'id' field of the returned record indicates
+ | the position of the Beta value. ID = 1 provides the Beta for the constant
+ | term (i.e. the Y intercept) while subsequent values reflect the Beta for
+ | each correspondingly numbered X feature. Feature 1 corresponds to Beta with
+ | 'id' = 2 and so on. If 'model' contains multiple work-items, Separate sets
+ | of Betas will be returned for each of the 'myriad' models (distinguished by
+ | 'wi').
+ |
+ | Parameter : model TABLE ( Layout_Model ) --- Optional parameter
+ | provides a model that was previously retrieved
+ | using GetModel. If omitted, GetModel will be used
+ | as the model.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 value } ) DATASET(NumericField)
+ | containing the Beta values.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : DATASET(NumericField) Predict(DATASET(NumericField) newX, DATASET(Layout_Model)
+ | model=GetModel) ||| OVERRIDE
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Predict the dependent variable values (Y) for any set of independent
+ | variables (X). Returns a predicted Y values for each observation (i.e.
+ | record) of X. This supports the 'myriad' style interface in that multiple
+ | independent work items may be present in 'newX', and multiple independent
+ | models may be provided in 'model'. The resulting predicted values will also
+ | be separable by work item (i.e. wi).
+ |
+ | Parameter : model TABLE ( Layout_Model ) --- Optional. A model that
+ | was previously returned from GetModel (above).
+ | Note that a model from a previous run will only be
+ | valid if the field numbers in X are the same as
+ | when the model was learned. If this parameter is
+ | omitted, the current model will be used.
+ |
+ | Parameter : newX TABLE ( NumericField ) --- The set of observations
+ | of independent variables in DATASET(NumericField)
+ | format.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 value } ) An estimation of the
+ | corresponding Y value for each observation of
+ | newX. Returned in DATASET(NumericField) format
+ | with field number (i.e. 'number') indicating the
+ | dependent variable that is predicted.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | TRANSFORM : R2Rec makeRSQ(CoCoRec coco)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Parameter : coco ROW ( CoCoRec ) --- No Doc
+ |
+ | Return : R2Rec
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : DATASET(R2Rec) RSquared
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | RSquared Calculate the R-Squared Metric used to assess the fit of the
+ | regression line to the training data. Since the regression has chosen the
+ | best (i.e. least squared error) line matching the data, this can be thought
+ | of as a measurement of the linearity of the training data. R Squared
+ | generally varies between 0 and 1, with 1 indicating an exact linear fit,
+ | and 0 indicating that a linear fit will have no predictive power. Negative
+ | values are possible under certain conditions, and indicate that the mean(Y)
+ | will be more predictive than any linear fit. Moderate values of R squared
+ | (e.g. .5) may indicate that the relationship of X -> Y is non-linear, or
+ | that the measurement error is high relative to the linear correlation (e.g.
+ | many outliers). In the former case, increasing the dimensionality of X,
+ | such as by using polynomial variants of the features, may yield a better
+ | fit. R squared always increases when additional independent variables are
+ | added, so it should not be used to determine the optimal set of X variables
+ | to include. For that purpose, use Adjusted R Squared (below) which
+ | penalizes larger numbers of variables. Note that the result of this call is
+ | only meaningful during training phase (use case 1 above) as it is an
+ | analysis based on the training data which is not provided during a
+ | prediction-only phase.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 number , REAL8
+ | RSquared } ) DATASET(R2Rec) with one record per
+ | dependent variable, per work-item. The number
+ | field indicates the dependent variable and
+ | coresponds to the number field of the dependent
+ | (Y) variable to which it applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : AnovaRec
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : error_ss REAL8 --- No Doc
+ |
+ | Field : total_df UNSIGNED8 --- No Doc
+ |
+ | Field : total_ms REAL8 --- No Doc
+ |
+ | Field : error_df UNSIGNED8 --- No Doc
+ |
+ | Field : error_ms REAL8 --- No Doc
+ |
+ | Field : model_ms REAL8 --- No Doc
+ |
+ | Field : model_ss REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : model_f REAL8 --- No Doc
+ |
+ | Field : total_ss REAL8 --- No Doc
+ |
+ | Field : model_df UNSIGNED8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | TRANSFORM : AnovaRec calcAnova(tmpRec le)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Parameter : le ROW ( tmpRec ) --- No Doc
+ |
+ | Return : AnovaRec
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : Anova
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | ANOVA (Analysis of Variance) report Analyzes the sources of variance. Basic
+ | ANOVA equality: Model + Error = Total Determines how much of the variance
+ | of Y is explained by the regression model, versus how much is due to the
+ | error term (i.e. unexplained variance). This attribute is only meaningful
+ | during the training phase. Provides one record per work-item. Each record
+ | provides the following statistics: - Total_SS -- Total Sum of Squares (SS)
+ | variance of the dependent data - Model_SS -- The SS variance represented
+ | within the model - Error_SS -- The SS variance not reflected by the model
+ | (i.e. Total_SS - Error_SS) - Total_DF -- The total degrees of freedom
+ | within the dependent data - Model_DF -- Degrees of freedom of the model -
+ | Error_DF -- Degrees of freedom of the error component - Total_MS -- The
+ | Mean Square (MS) variance of the dependent data - Model_MS -- The Mean
+ | Square (MS) variance represented within the model - Error_MS -- The MS
+ | variance not reflected by the model - Model_F -- The F-Test statistic:
+ | Model_MS / Error_MS
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 number , REAL8
+ | Total_SS , REAL8 Model_SS , REAL8 Error_SS ,
+ | UNSIGNED8 Total_DF , UNSIGNED8 Model_DF ,
+ | UNSIGNED8 Error_DF , REAL8 Total_MS , REAL8
+ | Model_MS , REAL8 Error_MS , REAL8 Model_F } )
+ | DATASET(AnovaRec), one per work-item per dependent
+ | (Y) variable The number field indicates the
+ | dependent variable to which the analysis applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : DATASET(NumericField) SE
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Standard Error of the Regression Coefficients Describes the variability of
+ | the regression error for each coefficient. Only meaningful during the
+ | training phase.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 value } ) DATASET(NumericField),
+ | one record per Beta coefficient per dependent
+ | variable per work-item. The 'id' field is the
+ | coefficient number, with 1 being the Y intercept,
+ | 2 being the coefficient for the first feature,
+ | etc. The 'number' field indicates the dependent
+ | variable to which the coefficient applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : DATASET(NumericField) TStat
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | T-Statistic The T-statistic identifies the significance of the value of
+ | each regression coefficient. Its calculation is simply the value of the
+ | coefficient divided by the Standard Error of the coefficient. A larger
+ | absolute value of the T-statistic indicates that the coefficient is more
+ | significant. Only meaningful during the training phase.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 value } ) DATSET(NumericField), one
+ | record per Beta coefficient per dependent variable
+ | per work-item. The 'id' field is the coefficient
+ | number, with 1 being the Y intercept, 2 being the
+ | coefficient for the first feature, etc. The number
+ | field indicates the dependent variable to which
+ | the coefficient applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : DATASET(R2Rec) AdjRSquared
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Adjusted R2 Calculate Adjusted R Squared which is a scaled version of R
+ | Squared that does not arbitrarily increase with the number of features.
+ | Adjusted R2, rather than R2 should always be used when trying to determine
+ | the best set of features to include in a model. When adding features, R2
+ | will always increase, whether or not it improves the predictive power of
+ | the model. Adjusted R2, however, will only increase with the predictive
+ | power of the model.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 number , REAL8
+ | RSquared } ) DATASET(R2Rec), one record per
+ | dependent variable per work-item. The number field
+ | indicates the dependent variable and corresponds
+ | to the number field of the dependent (Y) variable
+ | to which it applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : AICRec
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : aic REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : DATASET(AICRec) AIC
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Akaike Information Criterion (AIC) Information theory based criterion for
+ | assessing Goodness of Fit (GOF). Lower values mean better fit.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 number , REAL8
+ | AIC } ) DATASET(AICRec), one record per dependent
+ | variable per work-item. The number field indicates
+ | the dependent variable and corresponds to the
+ | number field of the dependent (Y) variable to
+ | which it applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : RangeVec
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : p REAL8 --- No Doc
+ |
+ | Field : rangenumber UNSIGNED8 --- No Doc
+ |
+ | Field : rangehigh REAL8 --- No Doc
+ |
+ | Field : rangelow REAL8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | MODULE : DistributionBase(t_Count Nranges = 10000)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Parameter : nranges UNSIGNED8 --- No Doc
+ |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Low
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : High
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Density(t_FieldReal t)
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : RangeWidth
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : DATASET(RangeVec) DensityV()
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : CumulativeV()
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Cumulative(t_FieldReal t)
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal NTile(t_FieldReal Pc)
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : pc REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : InvDensity(t_FieldReal delta)
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : delta REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Discrete
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : BOOLEAN
+ | |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | MODULE : TDistribution(t_Discrete v_in,t_Count NRanges = 10000)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Parameter : nranges UNSIGNED8 --- No Doc
+ |
+ | Parameter : v_in INTEGER4 --- No Doc
+ |
+ | Parent : linearregression.ols.distributionbase
+ |
+ |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : DATASET(RangeVec) DensityV() ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal NTile(t_FieldReal Pc) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : pc REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Discrete ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : BOOLEAN
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : InvDensity(t_FieldReal delta) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : delta REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : High ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Low ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : RangeWidth ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Density(t_FieldReal t) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : CumulativeV() ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Cumulative(t_FieldReal t) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | MODULE : FDistribution(t_Discrete d1_in, t_Discrete d2_in, t_Count NRanges = 10000)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Parameter : d1_in INTEGER4 --- No Doc
+ |
+ | Parameter : d2_in INTEGER4 --- No Doc
+ |
+ | Parameter : nranges UNSIGNED8 --- No Doc
+ |
+ | Parent : linearregression.ols.distributionbase
+ |
+ |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : DATASET(RangeVec) DensityV() ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : CumulativeV() ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Cumulative(t_FieldReal t) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal NTile(t_FieldReal Pc) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : pc REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : InvDensity(t_FieldReal delta) ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : delta REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Discrete ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : BOOLEAN
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Low ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : High ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : RangeWidth ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Density(t_FieldReal t) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | MODULE : NormalDistribution(t_Count NRanges)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Parameter : nranges UNSIGNED8 --- No Doc
+ |
+ | Parent : linearregression.ols.distributionbase
+ |
+ |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Low ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : High ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : INTEGER8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : RangeWidth ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : DATASET(RangeVec) DensityV() ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : CumulativeV() ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : TABLE ( { UNSIGNED8 RangeNumber , REAL8 RangeLow ,
+ | | REAL8 RangeHigh , REAL8 P } )
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Cumulative(t_FieldReal t) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal NTile(t_FieldReal Pc) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : pc REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : InvDensity(t_FieldReal delta) ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : delta REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | ATTRIBUTE : Discrete ||| INHERITED
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Return : BOOLEAN
+ | |
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | | FUNCTION : t_FieldReal Density(t_FieldReal t) ||| OVERRIDE
+ | | ----------------------------------------------------------------------------------------------------------------------------------
+ | |
+ | | No Documentation Found
+ | |
+ | | Parameter : t REAL8 --- No Doc
+ | |
+ | | Return : REAL8
+ | |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : pVal
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | P-Value Calculate the P-value for each coefficient, which is the
+ | probability that the coefficient is insignificant (i.e. actually zero). A
+ | low P-value (e.g. .05) provides evidence that the coefficient is
+ | significant in the model. A high P-value indicates that the coefficient
+ | value should, in fact, be zero. P-value is related to the T-Statistic, and
+ | can be thought of as a normalized version of the T-Statistic. Only
+ | meaningful during the training phase.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 value } ) DATSET(NumericField), one
+ | record per Beta coefficient per dependent variable
+ | per work-item. The 'id' field is the coefficient
+ | number, with 1 being the Y intercept, 2 being the
+ | coefficient for the first feature, etc. The number
+ | field indicates the dependent variable and
+ | corresponds to the number field of the dependent
+ | (Y) variable to which it applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : ConfintRec
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : upperint REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : lowerint REAL8 --- No Doc
+ |
+ | Field : id UNSIGNED8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : ConfInt(Types.t_fieldReal level)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Confidence Interval The Confidence Interval determines the upper and lower
+ | bounds of each estimated coefficient given a confidence level (level) that
+ | is required. For example, one could say that there is a 95% probability
+ | (level) that the coefficient of the first independent variable is between
+ | 2.05 and 3.62. This allows error margins to be determined with the desired
+ | confidence level. If the confidence interval spans zero, it implies that
+ | the coefficient may not be significant at the specified confidence level.
+ |
+ | Parameter : level REAL8 --- The level of confidence required,
+ | expressed as a percentage from 0.0 to 100.0
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 LowerInt , REAL8 UpperInt } )
+ | DATASET(ConfintRec) with one record per
+ | coefficient per dependent variable per work-item.
+ | The 'id' field is the coefficient number, with 1
+ | being the Y intercept, 2 being the coefficient for
+ | the first feature, etc. The number field indicates
+ | the dependent variable and corresponds to the
+ | number field of the dependent (Y) variable to
+ | which it applies.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : FTestRec
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : pvalue REAL8 --- No Doc
+ |
+ | Field : model_f REAL8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : DATASET(FTestRec) FTest
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | F-Test Calculate the P-value for the full regression, which is the
+ | probability that all of the coefficients are insignificant (i.e. actually
+ | zero). A low P-value (e.g. .05) provides evidence that at least one
+ | coefficient is significant. A high P-value indicates that all the
+ | coefficient values should in fact be zero, implying that the regression has
+ | no statistically significant predictive power. P-value is related to the
+ | ANOVA F-Statistic, and can be thought of as a standardized version of the
+ | ANOVA F-Statistic. The F-Test and T-Test are similar, except that the
+ | T-test is used to test the significance of each coefficient, while the
+ | F-Test is used to test the significance of the entire regression. For
+ | simple linear regression (i.e. only one independent variable, the T-Test
+ | and F-Test are equivalent.
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 number , REAL8
+ | Model_F , REAL8 pValue } ) DATASET(FTestRec), one
+ | record per dependent variable per work-item. The
+ | number field indicates the dependent variable and
+ | corresponds to the number field of the dependent
+ | (Y) variable to which it applies.
+ |
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LinearRegression/pkg.toc.txt b/testing/eclbundles/ml-bundles-docs/txt/LinearRegression/pkg.toc.txt
new file mode 100644
index 0000000..8c35e55
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LinearRegression/pkg.toc.txt
@@ -0,0 +1,27 @@
+++++++++++++++++++++
+ LinearRegression
+++++++++++++++++++++
+
+
+Name : LinearRegression
+
+Version : 3.0.0
+
+Description : Linear Regression Algorithm Bundle
+
+License : http://www.apache.org/licenses/LICENSE-2.0
+
+Copyright : Copyright (C) 2017 HPCC Systems
+
+Authors : HPCCSystems
+
+DependsOn : ML_Core, PBblas
+
+Platform : 6.2.0
+
+
+CONTENTS
+========
+
+file : OLS.ecl Ordinary Least Squares (OLS) Linear Regression aka Ordinary Linear Regression Regression learns a function that maps a set of input data (independents) to one or more output variables (dependents)
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/BinomialConfusion.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/BinomialConfusion.ecl.txt
new file mode 100644
index 0000000..96b33ee
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/BinomialConfusion.ecl.txt
@@ -0,0 +1,35 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.Binomial_Confusion_Summary)
+ BinomialConfusion(DATASET(Core_Types.Confusion_Detail) d)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Binomial confusion matrix. Work items with multinomial responses are
+ignored by this function. The higher value lexically is considered to be
+the positive indication.
+
+Parameter : d TABLE ( Confusion_Detail ) --- confusion detail
+ for the work item and classifier
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier ,
+ UNSIGNED8 true_positive , UNSIGNED8 true_negative
+ , UNSIGNED8 false_positive , UNSIGNED8
+ false_negative , UNSIGNED8 cond_pos , UNSIGNED8
+ pred_pos , UNSIGNED8 cond_neg , UNSIGNED8 pred_neg
+ , REAL8 prevalence , REAL8 accuracy , REAL8
+ true_pos_rate , REAL8 false_neg_rate , REAL8
+ false_pos_rate , REAL8 true_neg_rate , REAL8
+ pos_pred_val , REAL8 false_disc_rate , REAL8
+ false_omit_rate , REAL8 neg_pred_val } ) confusion
+ matrix for a binomial classifier
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/BinomialLogisticRegression.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/BinomialLogisticRegression.ecl.txt
new file mode 100644
index 0000000..3ff470c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/BinomialLogisticRegression.ecl.txt
@@ -0,0 +1,85 @@
+IMPORTS
+=======
+
+
+LogisticRegression
+LogisticRegression.Constants
+ML_Core.Interfaces
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+MODULE : BinomialLogisticRegression(UNSIGNED max_iter=200, REAL8 epsilon=Constants.default_epsilon,
+ REAL8 ridge=Constants.default_ridge)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Binomial logistic regression using iteratively re-weighted least squares.
+
+Parameter : epsilon REAL8 --- the minimum change in the Beta value
+ estimate to continue
+
+Parameter : max_iter UNSIGNED8 --- maximum number of iterations to try
+
+Parameter : ridge REAL8 --- a value to populate a diagonal matrix
+ that is added to a matrix help assure that the
+ matrix is invertible.
+
+Parent : ML_Core.Interfaces.IClassify
+ <../ML_Core/Interfaces/IClassify.ecl.txt>
+
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : DATASET(Types.Layout_Model) GetModel(DATASET(Types.NumericField) observations,
+ | DATASET(Types.DiscreteField) classifications) ||| OVERRIDE
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Calculate the model to fit the observation data to the observed classes.
+ |
+ | Parameter : observations TABLE ( NumericField ) --- the observed
+ | explanatory values
+ |
+ | Parameter : classifications TABLE ( DiscreteField ) --- the observed
+ | classification used to build the model
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , REAL8 value } ) the encoded model
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : DATASET(Types.Classify_Result) Classify(DATASET(Types.Layout_Model) model,
+ | DATASET(Types.NumericField) new_observations) ||| OVERRIDE
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Classify the observations using a model.
+ |
+ | Parameter : model TABLE ( Layout_Model ) --- The model, which must
+ | be produced by a corresponding getModel function.
+ |
+ | Parameter : new_observations TABLE ( NumericField ) --- observations to be
+ | classified
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ | number , INTEGER4 value , REAL8 conf } )
+ | Classification with a confidence value
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : DATASET(Types.Confusion_Detail) Report(DATASET(Types.Layout_Model) model,
+ | DATASET(Types.NumericField) observations, DATASET(Types.DiscreteField) classifications)
+ | ||| OVERRIDE
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Report the confusion matrix for the classifier and training data.
+ |
+ | Parameter : model TABLE ( Layout_Model ) --- the encoded model
+ |
+ | Parameter : observations TABLE ( NumericField ) --- the explanatory values.
+ |
+ | Parameter : classifications TABLE ( DiscreteField ) --- the classifications
+ | associated with the observations
+ |
+ | Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier ,
+ | INTEGER4 actual_class , INTEGER4 predict_class ,
+ | UNSIGNED4 occurs , BOOLEAN correct } ) the
+ | confusion matrix showing correct and incorrect
+ | results
+ |
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Confusion.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Confusion.ecl.txt
new file mode 100644
index 0000000..2a8c6e4
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Confusion.ecl.txt
@@ -0,0 +1,31 @@
+IMPORTS
+=======
+
+
+ML_Core
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Confusion_Detail) Confusion(DATASET(DiscreteField) dependents,
+ DATASET(DiscreteField) predicts)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Detail confusion records to compare actual versus predicted response
+variable values.
+
+Parameter : predicts TABLE ( DiscreteField ) --- the predicted
+ responses
+
+Parameter : dependents TABLE ( DiscreteField ) --- the original response
+ values
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier ,
+ INTEGER4 actual_class , INTEGER4 predict_class ,
+ UNSIGNED4 occurs , BOOLEAN correct } ) confusion
+ counts by predicted and actual response values.
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Constants.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Constants.ecl.txt
new file mode 100644
index 0000000..8bcbaf2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Constants.ecl.txt
@@ -0,0 +1,190 @@
+IMPORTS
+=======
+
+
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+MODULE : Constants
+----------------------------------------------------------------------------------------------------------------------------------
+
+No Documentation Found
+
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : UNSIGNED2 limit_card
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : UNSIGNED2
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : REAL8 default_epsilon
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : REAL8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : REAL8 default_ridge
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : REAL8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : UNSIGNED4 local_cap
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : UNSIGNED4
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_base
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_iters
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_delta
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_correct
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_incorrect
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_stat_set
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : SET ( INTEGER8 )
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_betas
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_betas_coef
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : id_betas_SE
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : base_builder
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : base_max_iter
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : base_epsilon
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : base_ind_vars
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : base_dep_vars
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : base_obs
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : builder_irls_local
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : builder_irls_global
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : builder_softmax
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : INTEGER8
+ |
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/DataStats.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/DataStats.ecl.txt
new file mode 100644
index 0000000..f426919
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/DataStats.ecl.txt
@@ -0,0 +1,43 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+LogisticRegression.Constants
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.Data_Info) DataStats(DATASET(Core_Types.NumericField) indep,
+ DATASET(Core_Types.DiscreteField) dep, BOOLEAN field_details=FALSE)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Information about the datasets. Without details the range for the x and y
+(independent and dependent) columns. Note that a column of all zero values
+cannot be distinguished from a missing column. When details are requested,
+the cardinality, minimum, and maximum values are returned. A zero
+cardinality is returned when the field cardinality exceeds the
+Constants.limit_card value.
+
+Parameter : field_details BOOLEAN --- Boolean directive to provide field
+ level info
+
+Parameter : dep TABLE ( DiscreteField ) --- data set of dependent
+ variables
+
+Parameter : indep TABLE ( NumericField ) --- data set of independent
+ variables
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4
+ dependent_fields , UNSIGNED4 dependent_records ,
+ UNSIGNED4 independent_fields , UNSIGNED4
+ independent_records , UNSIGNED4 dependent_count ,
+ UNSIGNED4 independent_count , TABLE ( Field_Desc )
+ dependent_stats , TABLE ( Field_Desc )
+ independent_stats } )
+
+returns : a data set of information on each work item
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Deviance_Analysis.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Deviance_Analysis.ecl.txt
new file mode 100644
index 0000000..761392b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Deviance_Analysis.ecl.txt
@@ -0,0 +1,27 @@
+IMPORTS
+=======
+
+
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.AOD_Record) Deviance_Analysis(DATASET(Types.Deviance_Record) proposed,
+ DATASET(Types.Deviance_Record) base)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Compare deviance information for an analysis of deviance.
+
+Parameter : proposed TABLE ( Deviance_Record ) --- the proposed model
+
+Parameter : base TABLE ( Deviance_Record ) --- the base model for
+ comparison
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier ,
+ UNSIGNED8 residual_df , UNSIGNED8 df , REAL8
+ residual_dev , REAL8 deviance , REAL8 p_value } )
+ the comparison of the deviance between the models
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Deviance_Detail.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Deviance_Detail.ecl.txt
new file mode 100644
index 0000000..bad3db1
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Deviance_Detail.ecl.txt
@@ -0,0 +1,33 @@
+IMPORTS
+=======
+
+
+ML_Core
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.Observation_Deviance) Deviance_Detail(DATASET(Core_Types.DiscreteField)
+ dependents, DATASET(Types.Raw_Prediction) predicts)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Detail deviance for each observation.
+
+Parameter : predicts TABLE ( Raw_Prediction ) --- the predicted values
+ of the response variable
+
+Parameter : dependents TABLE ( DiscreteField ) --- original dependent
+ records for the model
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ classifier , INTEGER4 actual , INTEGER4 predicted
+ , REAL8 mod_ll , REAL8 mod_dev_component , REAL8
+ mod_dev_residual , REAL8 nil_ll , REAL8
+ nil_dev_component , REAL8 nil_dev_residual } ) the
+ deviance information by observation and the log
+ likelihood of the predicted result.
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Distributions.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Distributions.ecl.txt
new file mode 100644
index 0000000..5007e9c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Distributions.ecl.txt
@@ -0,0 +1,101 @@
+IMPORTS
+=======
+
+
+ML_Core.Constants <../ML_Core/Constants.ecl.txt>
+ML_Core.Math
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+MODULE : Distributions
+----------------------------------------------------------------------------------------------------------------------------------
+
+No Documentation Found
+
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : REAL8 Normal_CDF(REAL8 x)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Cumulative Distribution of the standard normal distribution, the
+ | probability that a normal random variable will be smaller than x standard
+ | deviations above or below the mean. Taken from C/C++ Mathematical
+ | Algorithms for Scientists and Engineers, n. Shammas, McGraw-Hill, 1995
+ |
+ | Parameter : x REAL8 --- the number of standard deviations
+ |
+ | Return : REAL8
+ |
+ | returns : probability of exceeding x.
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : REAL8 Normal_PPF(REAL8 x)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Normal Distribution Percentage Point Function. Translated from C/C++
+ | Mathematical Algorithms for Scientists and Engineers, N. Shammas, McGraw-
+ | Hill, 1995
+ |
+ | Parameter : x REAL8 --- probability
+ |
+ | Return : REAL8
+ |
+ | returns : number of standard deviations from the mean
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : REAL8 T_CDF(REAL8 x, REAL8 df)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Students t distribution integral evaluated between negative infinity and x.
+ | Translated from NIST SEL DATAPAC Fortran TCDF.f source
+ |
+ | Parameter : df REAL8 --- degrees of freedom
+ |
+ | Parameter : x REAL8 --- value of the evaluation
+ |
+ | Return : REAL8
+ |
+ | returns : the probability that a value will be less than the
+ | specified value
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : REAL8 T_PPF(REAL8 x, REAL8 df)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | Percentage point function for the T distribution. Translated from NIST SEL
+ | DATAPAC Fortran TPPF.f source
+ |
+ | Parameter : df REAL8 --- No Doc
+ |
+ | Parameter : x REAL8 --- No Doc
+ |
+ | Return : REAL8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : REAL8 Chi2_CDF(REAL8 x, REAL8 df)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | The cumulative distribution function for the Chi Square distribution. the
+ | CDF for the specfied degrees of freedom. Translated from the NIST SEL
+ | DATAPAC Fortran subroutine CHSCDF.
+ |
+ | Parameter : df REAL8 --- No Doc
+ |
+ | Parameter : x REAL8 --- No Doc
+ |
+ | Return : REAL8
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | FUNCTION : REAL8 Chi2_PPF(REAL8 x, REAL8 df)
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | The Chi Squared PPF function. Translated from the NIST SEL DATAPAC Fortran
+ | subroutine CHSPPF.
+ |
+ | Parameter : df REAL8 --- No Doc
+ |
+ | Parameter : x REAL8 --- No Doc
+ |
+ | Return : REAL8
+ |
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta.ecl.txt
new file mode 100644
index 0000000..3ea54e2
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta.ecl.txt
@@ -0,0 +1,24 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : ExtractBeta(DATASET(Core_Types.Layout_Model) mod_ds)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Extract the beta values form the model dataset.
+
+Parameter : mod_ds TABLE ( Layout_Model ) --- the model dataset
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 ind_col ,
+ UNSIGNED4 dep_nom , REAL8 w , REAL8 SE } ) a beta
+ values as Model Coefficient records, zero as the
+ constant term.
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta_CI.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta_CI.ecl.txt
new file mode 100644
index 0000000..5966e1b
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta_CI.ecl.txt
@@ -0,0 +1,27 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.Confidence_Model_Coef) ExtractBeta_CI(DATASET(Core_Types.Layout_Model)
+ mod_ds, REAL8 level)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Extract the beta values form the model dataset.
+
+Parameter : level REAL8 --- the significance value for the intervals
+
+Parameter : mod_ds TABLE ( Layout_Model ) --- the model dataset
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 ind_col ,
+ UNSIGNED4 dep_nom , REAL8 w , REAL8 SE , REAL8
+ upper , REAL8 lower } ) the beta values with
+ confidence intervals term.
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta_pval.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta_pval.ecl.txt
new file mode 100644
index 0000000..a4c6ba5
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractBeta_pval.ecl.txt
@@ -0,0 +1,25 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.pval_Model_Coef) ExtractBeta_pval(DATASET(Core_Types.Layout_Model) mod_ds)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Extract the beta values form the model dataset.
+
+Parameter : mod_ds TABLE ( Layout_Model ) --- the model dataset
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 ind_col ,
+ UNSIGNED4 dep_nom , REAL8 w , REAL8 SE , REAL8 z ,
+ REAL8 p_value } ) the beta values with p-values as
+ Model Coefficient records, zero as the constant
+ term.
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractReport.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractReport.ecl.txt
new file mode 100644
index 0000000..3bfcecd
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/ExtractReport.ecl.txt
@@ -0,0 +1,26 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+LogisticRegression.Constants
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.Model_Report) ExtractReport(DATASET(Core_Types.Layout_Model) mod_ds)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Extract Report records from model
+
+Parameter : mod_ds TABLE ( Layout_Model ) --- the model dataset
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 max_iterations
+ , REAL8 epsilon , UNSIGNED4 dep_vars , UNSIGNED4
+ ind_vars , UNSIGNED8 obs , UNSIGNED2 builder ,
+ TABLE ( Classifier_Stats ) stats } ) the model
+ report dataset
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel.ecl.txt
new file mode 100644
index 0000000..9794aa4
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel.ecl.txt
@@ -0,0 +1,42 @@
+IMPORTS
+=======
+
+
+ML_Core
+ML_Core.Types <../../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Constants <../Constants.ecl.txt>
+LogisticRegression.Types <../Types.ecl.txt>
+logisticregression.irls
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Layout_Model) GetModel(DATASET(NumericField) independents, DATASET(DiscreteField)
+ dependents, UNSIGNED max_iter=200, REAL8 epsilon=Constants.default_epsilon, REAL8
+ ridge=Constants.default_ridge)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Generate logistic regression model from training data. The size of the
+inputs is used to determin which work items are processed with purely local
+operations (the data is moved once as necessary) or with global operations
+supporting a work item to use multiple nodes.
+
+Parameter : dependents TABLE ( DiscreteField ) --- the dependent values.
+
+Parameter : ridge REAL8 --- a value to pupulate a diagonal matrix
+ that is added to a matrix help assure that the
+ matrix is invertible.
+
+Parameter : epsilon REAL8 --- the minimum change in the Beta value
+ estimate to continue
+
+Parameter : independents TABLE ( NumericField ) --- the independent values
+
+Parameter : max_iter UNSIGNED8 --- maximum number of iterations to try
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ number , REAL8 value } ) coefficient matrix plus
+ model building stats
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel_global.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel_global.ecl.txt
new file mode 100644
index 0000000..3a494b1
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel_global.ecl.txt
@@ -0,0 +1,41 @@
+IMPORTS
+=======
+
+
+ML_Core
+ML_Core.Types <../../ML_Core/Types.ecl.txt>
+PBblas
+PBblas.Types <../../PBblas/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Constants <../Constants.ecl.txt>
+LogisticRegression.Types <../Types.ecl.txt>
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Layout_Model) GetModel_global(DATASET(NumericField) independents,
+ DATASET(DiscreteField) dependents, UNSIGNED max_iter=200, REAL8
+ epsilon=Constants.default_epsilon, REAL8 ridge=Constants.default_ridge)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Internal function to determine values for the model coefficients and
+selected statistics from building the model.
+
+Parameter : dependents TABLE ( DiscreteField ) --- the dependent values
+
+Parameter : ridge REAL8 --- a value to pupulate a diagonal matrix
+ that is added to a matrix help assure that the
+ matrix is invertible.
+
+Parameter : epsilon REAL8 --- the minimum change in the Beta value
+ estimate to continue
+
+Parameter : independents TABLE ( NumericField ) --- the independent values
+
+Parameter : max_iter UNSIGNED8 --- maximum number of iterations to try
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ number , REAL8 value } ) coefficient matrix plus
+ model building statistics
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel_local.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel_local.ecl.txt
new file mode 100644
index 0000000..4e34ddf
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/GetModel_local.ecl.txt
@@ -0,0 +1,42 @@
+IMPORTS
+=======
+
+
+ML_Core
+ML_Core.Types <../../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Constants <../Constants.ecl.txt>
+LogisticRegression.Types <../Types.ecl.txt>
+LogisticRegression.IRLS
+std <../../std/pkg.toc.txt>
+std.blas
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Layout_Model) GetModel_local(DATASET(NumericField) independents,
+ DATASET(DiscreteField) dependents, UNSIGNED2 max_iter=200, REAL8
+ epsilon=Constants.default_epsilon, REAL8 ridge=Constants.default_ridge)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Internal function to determine values for the model co-efficients and
+selected stats from building the model.
+
+Parameter : dependents TABLE ( DiscreteField ) --- the dependent values.
+
+Parameter : ridge REAL8 --- a value to populate a diagonal matrix
+ that is added to a matrix help assure that the
+ matrix is invertible.
+
+Parameter : epsilon REAL8 --- the minimum change in the Beta value
+ estimate to continue
+
+Parameter : independents TABLE ( NumericField ) --- the independent values
+
+Parameter : max_iter UNSIGNED2 --- maximum number of iterations to try
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ number , REAL8 value } ) coefficient matrix plus
+ model building stats
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/pkg.toc.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/pkg.toc.txt
new file mode 100644
index 0000000..a53a303
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/IRLS/pkg.toc.txt
@@ -0,0 +1,15 @@
+++++++++
+ IRLS
+++++++++
+
+
+
+CONTENTS
+========
+
+file : GetModel.ecl Generate logistic regression model from training data
+
+file : GetModel_global.ecl Internal function to determine values for the model coefficients and selected statistics from building the model
+
+file : GetModel_local.ecl Internal function to determine values for the model co-efficients and selected stats from building the model
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/LogitPredict.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/LogitPredict.ecl.txt
new file mode 100644
index 0000000..dad8781
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/LogitPredict.ecl.txt
@@ -0,0 +1,28 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Classify_Result) LogitPredict(DATASET(Model_Coef) coef, DATASET(NumericField)
+ independents)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Predict the category values with the logit function and the the supplied
+beta coefficients.
+
+Parameter : coef TABLE ( Model_Coef ) --- the model beta
+ coefficients
+
+Parameter : independents TABLE ( NumericField ) --- the observations
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ number , INTEGER4 value , REAL8 conf } ) the
+ predicted category values and a confidence score
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/LogitScore.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/LogitScore.ecl.txt
new file mode 100644
index 0000000..1be35c9
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/LogitScore.ecl.txt
@@ -0,0 +1,27 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Raw_Prediction) LogitScore(DATASET(Model_Coef) coef, DATASET(NumericField)
+ independents)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Calculate the score using the logit function and the the supplied beta
+coefficients.
+
+Parameter : coef TABLE ( Model_Coef ) --- the model beta
+ coefficients
+
+Parameter : independents TABLE ( NumericField ) --- the observations
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED8 id , UNSIGNED4
+ number , REAL8 raw } ) the raw prediction value
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Model_Deviance.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Model_Deviance.ecl.txt
new file mode 100644
index 0000000..8c22a3e
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Model_Deviance.ecl.txt
@@ -0,0 +1,26 @@
+IMPORTS
+=======
+
+
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.Deviance_Record) Model_Deviance(DATASET(Types.Observation_Deviance) od,
+ DATASET(Types.Model_Coef) mod)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Model Deviance.
+
+Parameter : od TABLE ( Observation_Deviance ) --- observation
+ deviance record
+
+Parameter : mod TABLE ( Model_Coef ) --- model co-efficients
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier ,
+ UNSIGNED8 df , REAL8 deviance , REAL8 AIC } )
+ model deviance
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Null_Deviance.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Null_Deviance.ecl.txt
new file mode 100644
index 0000000..10911bb
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Null_Deviance.ecl.txt
@@ -0,0 +1,24 @@
+IMPORTS
+=======
+
+
+LogisticRegression
+LogisticRegression.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+FUNCTION : DATASET(Types.Deviance_Record) Null_Deviance(DATASET(Types.Observation_Deviance) od)
+----------------------------------------------------------------------------------------------------------------------------------
+
+Deviance for the null model, that is, a model with only an intercept.
+
+Parameter : od TABLE ( Observation_Deviance ) --- Observation
+ Deviance record set.
+
+Return : TABLE ( { UNSIGNED2 wi , UNSIGNED4 classifier ,
+ UNSIGNED8 df , REAL8 deviance , REAL8 AIC } ) a
+ data set of the null model deviances for each work
+ item and classifier.
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Tests/Check_Dist.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Tests/Check_Dist.ecl.txt
new file mode 100644
index 0000000..37aa168
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Tests/Check_Dist.ecl.txt
@@ -0,0 +1,19 @@
+IMPORTS
+=======
+
+
+LogisticRegression.Distributions <../Distributions.ecl.txt>
+ML_Core
+python <../../python/pkg.toc.txt>
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+ATTRIBUTE : Check_Dist
+----------------------------------------------------------------------------------------------------------------------------------
+
+No Documentation Found
+
+Return :
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Tests/pkg.toc.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Tests/pkg.toc.txt
new file mode 100644
index 0000000..56c9a11
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Tests/pkg.toc.txt
@@ -0,0 +1,11 @@
++++++++++
+ Tests
++++++++++
+
+
+
+CONTENTS
+========
+
+file : Check_Dist.ecl
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Types.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Types.ecl.txt
new file mode 100644
index 0000000..7702d48
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/Types.ecl.txt
@@ -0,0 +1,323 @@
+IMPORTS
+=======
+
+
+ML_Core.Types <../ML_Core/Types.ecl.txt>
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+MODULE : Types
+----------------------------------------------------------------------------------------------------------------------------------
+
+No Documentation Found
+
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | ATTRIBUTE : t_Universe
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Return : UNSIGNED1
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Field_Desc
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : min_value REAL8 --- No Doc
+ |
+ | Field : max_value REAL8 --- No Doc
+ |
+ | Field : cardinality UNSIGNED4 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Data_Info
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : independent_fields UNSIGNED4 --- No Doc
+ |
+ | Field : dependent_fields UNSIGNED4 --- No Doc
+ |
+ | Field : dependent_records UNSIGNED4 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : independent_stats TABLE ( Field_Desc ) --- No Doc
+ |
+ | Field : independent_records UNSIGNED4 --- No Doc
+ |
+ | Field : dependent_stats TABLE ( Field_Desc ) --- No Doc
+ |
+ | Field : dependent_count UNSIGNED4 --- No Doc
+ |
+ | Field : independent_count UNSIGNED4 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : NumericField_U
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : value REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : u UNSIGNED1 --- No Doc
+ |
+ | Field : id UNSIGNED8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : DiscreteField_U
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : value INTEGER4 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : u UNSIGNED1 --- No Doc
+ |
+ | Field : id UNSIGNED8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Layout_Column_Map
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : remap_number UNSIGNED4 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : orig_number UNSIGNED4 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Classifier_Stats
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : correct UNSIGNED4 --- No Doc
+ |
+ | Field : column UNSIGNED4 --- No Doc
+ |
+ | Field : incorrect UNSIGNED4 --- No Doc
+ |
+ | Field : iterations UNSIGNED4 --- No Doc
+ |
+ | Field : max_delta REAL8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Model_Report
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : max_iterations UNSIGNED4 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : dep_vars UNSIGNED4 --- No Doc
+ |
+ | Field : ind_vars UNSIGNED4 --- No Doc
+ |
+ | Field : stats TABLE ( Classifier_Stats ) --- No Doc
+ |
+ | Field : obs UNSIGNED8 --- No Doc
+ |
+ | Field : epsilon REAL8 --- No Doc
+ |
+ | Field : builder UNSIGNED2 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Binomial_Confusion_Summary
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : false_negative UNSIGNED8 --- No Doc
+ |
+ | Field : cond_neg UNSIGNED8 --- No Doc
+ |
+ | Field : false_omit_rate REAL8 --- No Doc
+ |
+ | Field : false_pos_rate REAL8 --- No Doc
+ |
+ | Field : cond_pos UNSIGNED8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : true_pos_rate REAL8 --- No Doc
+ |
+ | Field : false_positive UNSIGNED8 --- No Doc
+ |
+ | Field : pred_pos UNSIGNED8 --- No Doc
+ |
+ | Field : neg_pred_val REAL8 --- No Doc
+ |
+ | Field : pos_pred_val REAL8 --- No Doc
+ |
+ | Field : true_neg_rate REAL8 --- No Doc
+ |
+ | Field : true_positive UNSIGNED8 --- No Doc
+ |
+ | Field : accuracy REAL8 --- No Doc
+ |
+ | Field : false_disc_rate REAL8 --- No Doc
+ |
+ | Field : true_negative UNSIGNED8 --- No Doc
+ |
+ | Field : false_neg_rate REAL8 --- No Doc
+ |
+ | Field : prevalence REAL8 --- No Doc
+ |
+ | Field : classifier UNSIGNED4 --- No Doc
+ |
+ | Field : pred_neg UNSIGNED8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Model_Coef
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : dep_nom UNSIGNED4 --- No Doc
+ |
+ | Field : w REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : se REAL8 --- No Doc
+ |
+ | Field : ind_col UNSIGNED4 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Confidence_Model_Coef
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : lower REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : upper REAL8 --- No Doc
+ |
+ | Field : ind_col UNSIGNED4 --- No Doc
+ |
+ | Field : dep_nom UNSIGNED4 --- No Doc
+ |
+ | Field : w REAL8 --- No Doc
+ |
+ | Field : se REAL8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : pval_Model_Coef
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : p_value REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : z REAL8 --- No Doc
+ |
+ | Field : ind_col UNSIGNED4 --- No Doc
+ |
+ | Field : dep_nom UNSIGNED4 --- No Doc
+ |
+ | Field : w REAL8 --- No Doc
+ |
+ | Field : se REAL8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Raw_Prediction
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : number UNSIGNED4 --- No Doc
+ |
+ | Field : raw REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : id UNSIGNED8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Observation_Deviance
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : predicted INTEGER4 --- No Doc
+ |
+ | Field : nil_dev_residual REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : mod_ll REAL8 --- No Doc
+ |
+ | Field : actual INTEGER4 --- No Doc
+ |
+ | Field : nil_dev_component REAL8 --- No Doc
+ |
+ | Field : mod_dev_residual REAL8 --- No Doc
+ |
+ | Field : mod_dev_component REAL8 --- No Doc
+ |
+ | Field : nil_ll REAL8 --- No Doc
+ |
+ | Field : classifier UNSIGNED4 --- No Doc
+ |
+ | Field : id UNSIGNED8 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : Deviance_Record
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : deviance REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : df UNSIGNED8 --- No Doc
+ |
+ | Field : aic REAL8 --- No Doc
+ |
+ | Field : classifier UNSIGNED4 --- No Doc
+ |
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ | RECORD : AOD_Record
+ | ----------------------------------------------------------------------------------------------------------------------------------
+ |
+ | No Documentation Found
+ |
+ | Field : residual_df UNSIGNED8 --- No Doc
+ |
+ | Field : deviance REAL8 --- No Doc
+ |
+ | Field : wi UNSIGNED2 --- No Doc
+ |
+ | Field : residual_dev REAL8 --- No Doc
+ |
+ | Field : p_value REAL8 --- No Doc
+ |
+ | Field : df UNSIGNED8 --- No Doc
+ |
+ | Field : classifier UNSIGNED4 --- No Doc
+ |
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/dimm.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/dimm.ecl.txt
new file mode 100644
index 0000000..040012c
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/dimm.ecl.txt
@@ -0,0 +1,46 @@
+IMPORTS
+=======
+
+
+std.blas
+std.BLAS.Types
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+EMBED : Types.matrix_t dimm(BOOLEAN transposeA, BOOLEAN transposeB, BOOLEAN diagonalA, BOOLEAN
+ diagonalB, Types.dimension_t m, Types.dimension_t n, Types.dimension_t k, Types.value_t
+ alpha, Types.matrix_t A, Types.matrix_t B, Types.value_t beta=0.0, Types.matrix_t C=[])
+----------------------------------------------------------------------------------------------------------------------------------
+
+Matrix multiply when either A or B is a diagonal and is passed as a vector.
+alpha*op(A) op(B) + beta*C where op() is transpose
+
+Parameter : diagonalB BOOLEAN --- true when B is the diagonal matrix
+
+Parameter : m UNSIGNED4 --- number of rows in product
+
+Parameter : alpha REAL8 --- scalar used on A
+
+Parameter : k UNSIGNED4 --- number of columns/rows for the
+ multiplier/multiplicand
+
+Parameter : C SET ( REAL8 ) --- matrix C or empty
+
+Parameter : diagonalA BOOLEAN --- true when A is the diagonal matrix
+
+Parameter : B SET ( REAL8 ) --- matrix B
+
+Parameter : n UNSIGNED4 --- number of columns in product
+
+Parameter : beta REAL8 --- scalar for matrix C
+
+Parameter : A SET ( REAL8 ) --- matrix A
+
+Parameter : transposeA BOOLEAN --- true when transpose of A is used
+
+Parameter : transposeB BOOLEAN --- true when transpose of B is used
+
+Return : SET ( REAL8 )
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/performance/RunBinomial.ecl.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/performance/RunBinomial.ecl.txt
new file mode 100644
index 0000000..0c6e4e5
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/performance/RunBinomial.ecl.txt
@@ -0,0 +1,18 @@
+IMPORTS
+=======
+
+
+logisticregression
+ML_Core.Types <../../ML_Core/Types.ecl.txt>
+
+DESCRIPTIONS
+============
+
+----------------------------------------------------------------------------------------------------------------------------------
+ATTRIBUTE : RunBinomial
+----------------------------------------------------------------------------------------------------------------------------------
+
+No Documentation Found
+
+Return :
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/performance/pkg.toc.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/performance/pkg.toc.txt
new file mode 100644
index 0000000..acbeb11
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/performance/pkg.toc.txt
@@ -0,0 +1,11 @@
++++++++++++++++
+ performance
++++++++++++++++
+
+
+
+CONTENTS
+========
+
+file : RunBinomial.ecl
+
diff --git a/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/pkg.toc.txt b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/pkg.toc.txt
new file mode 100644
index 0000000..868bd42
--- /dev/null
+++ b/testing/eclbundles/ml-bundles-docs/txt/LogisticRegression/pkg.toc.txt
@@ -0,0 +1,69 @@
+++++++++++++++++++++++
+ LogisticRegression
+++++++++++++++++++++++
+
+
+Name : LogisticRegression
+
+Version : 1.0.0
+
+Description : Logistic Regression implementation
+
+License : http://www.apache.org/licenses/LICENSE-2.0
+
+Copyright : Copyright (C) 2017 HPCC Systems
+
+Authors : HPCCSystems
+
+DependsOn : ML_Core, PBblas
+
+Platform : 6.2.0
+
+
+CONTENTS
+========
+
+dir : IRLS
+
+dir : performance
+
+dir : Tests
+
+dir : validation
+
+file : BinomialConfusion.ecl Binomial confusion matrix
+
+file : BinomialLogisticRegression.ecl Binomial logistic regression using iteratively re-weighted least squares
+
+file : Confusion.ecl Detail confusion records to compare actual versus predicted response variable values
+
+file : Constants.ecl
+
+file : DataStats.ecl Information about the datasets
+
+file : Deviance_Analysis.ecl