diff --git a/.github/scripts/cleanup_stale_issues.sh b/.github/scripts/cleanup_stale_issues.sh new file mode 100755 index 000000000..cf2c506bc --- /dev/null +++ b/.github/scripts/cleanup_stale_issues.sh @@ -0,0 +1,238 @@ +#!/usr/bin/env bash +# ============================================================================== +# Graphitti - Stale Issue Cleanup Script +# +# Description: +# Scans merged pull requests for referenced issue numbers (e.g. '[issue-123]', +# 'fixes #123', 'closes #123', 'issue-123') and checks whether those issues +# are still in the OPEN state on GitHub. +# +# In dry-run mode (default), it reports all candidate issues that can be closed. +# In execute mode (--execute / -x), it closes open issues with a comment linking +# the merged pull request that resolved them. +# +# Prerequisites: +# - GitHub CLI ('gh') installed and authenticated ('gh auth login') +# - 'jq' or 'python3' for JSON processing +# +# Usage: +# ./.github/scripts/cleanup_stale_issues.sh [OPTIONS] +# +# Options: +# -d, --dry-run Preview candidate issues without closing them (default) +# -x, --execute Close open issues associated with merged PRs +# -l, --limit NUM Number of merged pull requests to inspect (default: 100) +# -h, --help Display this help message +# ============================================================================== + +set -euo pipefail + +DRY_RUN=true +LIMIT=100 + +usage() { + cat <&2 + usage + ;; + esac +done + +# Verify GitHub CLI is available and authenticated +if ! command -v gh &> /dev/null; then + echo "Error: 'gh' (GitHub CLI) is not installed or not in PATH." >&2 + echo "Please install it: https://cli.github.com/" >&2 + exit 1 +fi + +if ! gh auth status &> /dev/null; then + echo "Error: 'gh' is not authenticated. Please run 'gh auth login' first." >&2 + exit 1 +fi + +echo "============================================================" +echo " Graphitti Stale Issue Cleanup" +echo " Mode: $( [ "$DRY_RUN" = true ] && echo "DRY RUN (preview only)" || echo "EXECUTE (closing stale issues)" )" +echo " Merged PR scan limit: $LIMIT" +echo "============================================================" +echo "" + +echo "Fetching merged pull requests from GitHub..." +PRS_JSON=$(gh pr list --state merged --limit "$LIMIT" --json number,title,body,url,headRefName) + +# Extract issue numbers and map them to the merged PRs +# Searches for patterns: +# 1. [issue-123] or [ISSUE-123] +# 2. issue-123 or issue/123 in branch name or text +# 3. (fixes|closes|resolves|closed|fixed|resolved) #123 +# 4. #123 in PR title + +python3 - "$PRS_JSON" "$DRY_RUN" << 'EOF' +import sys +import json +import re +import subprocess + +from concurrent.futures import ThreadPoolExecutor, as_completed + +prs_json_str = sys.argv[1] +dry_run = (sys.argv[2] == "True" or sys.argv[2] == "true") + +prs = json.loads(prs_json_str) + +issue_patterns = [ + re.compile(r'\[issue[-_](\d+)\]', re.IGNORECASE), + re.compile(r'\bissue[-_/](\d+)\b', re.IGNORECASE), + re.compile(r'(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\s+#(\d+)', re.IGNORECASE) +] + +# Map issue_number -> list of PR info dicts +issue_to_prs = {} + +for pr in prs: + pr_num = pr.get("number") + pr_title = pr.get("title", "") + pr_body = pr.get("body", "") or "" + pr_branch = pr.get("headRefName", "") or "" + pr_url = pr.get("url", "") + + search_texts = [pr_title, pr_branch, pr_body] + found_issues = set() + + for text in search_texts: + for pattern in issue_patterns: + for match in pattern.finditer(text): + issue_id = int(match.group(1)) + # Skip self-referencing PR number if matched via # + if issue_id != pr_num: + found_issues.add(issue_id) + #end if + #end for match + #end for pattern + #end for text + + for issue_id in found_issues: + if issue_id not in issue_to_prs: + issue_to_prs[issue_id] = [] + #end if + issue_to_prs[issue_id].append({ + "pr_number": pr_num, + "pr_title": pr_title, + "pr_url": pr_url + }) + #end for issue_id +#end for pr + +sorted_issue_ids = sorted(issue_to_prs.keys()) +print(f"Discovered {len(sorted_issue_ids)} referenced issue candidates in merged PRs.\n") +print(f"Checking current status of {len(sorted_issue_ids)} candidate issues on GitHub: ", end="", flush=True) + +def check_issue_status(issue_id): + cmd = ["gh", "issue", "view", str(issue_id), "--json", "number,title,state,url"] + result = subprocess.run(cmd, capture_output=True, text=True) + if result.returncode != 0: + return (issue_id, None) + #end if + try: + issue_data = json.loads(result.stdout) + return (issue_id, issue_data) + except Exception: + return (issue_id, None) + #end try +#end def check_issue_status + +open_issues_found = [] + +with ThreadPoolExecutor(max_workers=8) as executor: + futures = {executor.submit(check_issue_status, i_id): i_id for i_id in sorted_issue_ids} + for future in as_completed(futures): + print(".", end="", flush=True) + issue_id, issue_data = future.result() + if issue_data and issue_data.get("state") == "OPEN": + linked_prs = issue_to_prs[issue_id] + open_issues_found.append((issue_data, linked_prs)) + #end if + #end for future +#end with + +# Sort open issues by issue number for deterministic output +open_issues_found.sort(key=lambda item: item[0]['number']) +print("\n") + +if not open_issues_found: + print("No open stale issues found. All referenced issues in scanned merged PRs are closed.") + sys.exit(0) +#end if + +print(f"Found {len(open_issues_found)} OPEN issues associated with merged pull requests:\n") + +for issue_data, linked_prs in open_issues_found: + issue_num = issue_data['number'] + issue_title = issue_data['title'] + issue_url = issue_data['url'] + pr_references = ", ".join([f"PR #{p['pr_number']} ({p['pr_url']})" for p in linked_prs]) + + print(f" - Issue #{issue_num}: \"{issue_title}\"") + print(f" URL: {issue_url}") + print(f" Resolved by: {pr_references}") + + if not dry_run: + comment_msg = f"Closed automatically by cleanup script: resolved in merged pull request {linked_prs[0]['pr_url']}." + close_cmd = ["gh", "issue", "close", str(issue_num), "--comment", comment_msg] + close_result = subprocess.run(close_cmd, capture_output=True, text=True) + if close_result.returncode == 0: + print(f" -> Successfully closed Issue #{issue_num}.") + else: + print(f" -> Failed to close Issue #{issue_num}: {close_result.stderr.strip()}") + #end if + #end if + print("") +#end for + +if dry_run: + print("------------------------------------------------------------") + print(f"DRY RUN COMPLETE: {len(open_issues_found)} issues identified.") + print("Run with '--execute' to close these issues.") + print("------------------------------------------------------------") +else: + print("------------------------------------------------------------") + print(f"CLEANUP COMPLETE: Processed {len(open_issues_found)} issues.") + print("------------------------------------------------------------") +#end if +EOF diff --git a/.github/workflows/close-merged-issues.yml b/.github/workflows/close-merged-issues.yml new file mode 100644 index 000000000..4197c1d3e --- /dev/null +++ b/.github/workflows/close-merged-issues.yml @@ -0,0 +1,97 @@ +name: Auto-Close Merged Issues + +on: + pull_request: + types: [closed] + branches: + - SharedDevelopment + - master + +permissions: + issues: write + pull-requests: read + +jobs: + close-issues: + if: github.event.pull_request.merged == true + runs-on: ubuntu-latest + + steps: + - name: Close linked issues + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GH_REPO: ${{ github.repository }} + PR_NUMBER: ${{ github.event.pull_request.number }} + PR_TITLE: ${{ github.event.pull_request.title }} + PR_BODY: ${{ github.event.pull_request.body }} + PR_BRANCH: ${{ github.event.pull_request.head.ref }} + PR_URL: ${{ github.event.pull_request.html_url }} + TARGET_BRANCH: ${{ github.event.pull_request.base.ref }} + run: | + python3 - << 'EOF' + import os + import re + import json + import subprocess + + pr_number = os.environ.get("PR_NUMBER") + pr_title = os.environ.get("PR_TITLE", "") + pr_body = os.environ.get("PR_BODY", "") + pr_branch = os.environ.get("PR_BRANCH", "") + pr_url = os.environ.get("PR_URL", "") + target_branch = os.environ.get("TARGET_BRANCH", "") + + search_texts = [pr_title, pr_branch, pr_body] + issue_patterns = [ + re.compile(r'\[issue[-_](\d+)\]', re.IGNORECASE), + re.compile(r'\bissue[-_/](\d+)\b', re.IGNORECASE), + re.compile(r'(?:close|closes|closed|fix|fixes|fixed|resolve|resolves|resolved)\s+#(\d+)', re.IGNORECASE) + ] + + found_issues = set() + for text in search_texts: + for pattern in issue_patterns: + for match in pattern.finditer(text): + issue_id = int(match.group(1)) + if str(issue_id) != str(pr_number): + found_issues.add(issue_id) + #end if + #end for match + #end for pattern + #end for text + + if not found_issues: + print("No linked issues found in PR title, branch, or body.") + exit(0) + #end if + + print(f"Identified candidate issue(s): {sorted(found_issues)}") + + for issue_id in sorted(found_issues): + # Check if issue exists and is currently OPEN + cmd = ["gh", "issue", "view", str(issue_id), "--json", "number,state,title"] + res = subprocess.run(cmd, capture_output=True, text=True) + if res.returncode != 0: + print(f"Issue #{issue_id} not found or inaccessible; skipping.") + continue + #end if + + try: + data = json.loads(res.stdout) + if data.get("state") == "OPEN": + comment = f"Automatically closed: resolved by pull request #{pr_number} ({pr_url}) merged into {target_branch}." + close_cmd = ["gh", "issue", "close", str(issue_id), "--comment", comment] + close_res = subprocess.run(close_cmd, capture_output=True, text=True) + if close_res.returncode == 0: + print(f"Successfully closed issue #{issue_id} ('{data.get('title')}').") + else: + print(f"Failed to close issue #{issue_id}: {close_res.stderr.strip()}") + #end if + else: + print(f"Issue #{issue_id} is already in state '{data.get('state')}'; skipping.") + #end if + except Exception as e: + print(f"Error processing issue #{issue_id}: {e}") + #end try + #end for issue_id + EOF diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index ce659f902..4be4b51a2 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -6,6 +6,11 @@ on: - '**.h' branches: - master + - SharedDevelopment + - '*Dev' + - '*Development' + - 'release-*' + - 'hotfix-*' pull_request: paths: - '**.cpp' @@ -13,15 +18,15 @@ on: types: [opened, synchronize, reopened] jobs: - deploy: + format: runs-on: ubuntu-latest steps: - name: Checkout Source - uses: actions/checkout@v3 + uses: actions/checkout@v5 - name: Install missing software on ubuntu - run: sudo apt-get install clang-format + run: sudo apt-get update && sudo apt-get install -y clang-format - name: Code format check run: | diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 57924d06c..8e0e2ac8f 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -1,21 +1,25 @@ name: Github Pages on: + workflow_dispatch: schedule: # Triggers at the end of the day on the 1st of every month - cron: '0 0 1 * *' +permissions: + contents: write + jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 - uses: mattnotmitt/doxygen-action@v1 with: doxyfile-path: docs/Doxygen/Doxyfile - name: Deploy - uses: peaceiris/actions-gh-pages@v3 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: docs diff --git a/.github/workflows/plantUML.yml b/.github/workflows/plantUML.yml deleted file mode 100644 index 212e63038..000000000 --- a/.github/workflows/plantUML.yml +++ /dev/null @@ -1,57 +0,0 @@ -name: Generate PlantUML Diagrams -on: - push: - paths: - - '**.puml' - branches: - - master - - plantUML-Diagrams - pull_request: - paths: - - '**.puml' - branches: - - master - - plantUML-Diagrams -jobs: - ci: - runs-on: ubuntu-latest - env: - UML_FILES: ".puml" - steps: - - name: Checkout Source - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Get all UML files - id: getfile - run: | - #List the .puml files in the working directory - find . -name '*.puml' \ - | awk 'BEGIN { printf "::set-output name=files::" } - { - # only process puml files - # do not try to process our theme or custom config - if ( $1 ~ /\.puml$/ && $1 !~ /(theme|config)\.puml$/ ) - { - # only print the file name and strip newlines for spaces - printf "%s ", $1 - } - } - END { print "" } # ensure we do print a newline at the end - ' - - name: UML files considered echo output - run: | - echo ${{ steps.getfile.outputs.files }} - - name: Generate SVG Diagrams - uses: UWB-Biocomputing/plantuml-github-action@main - with: - args: -o "diagrams" -v -tsvg ${{ steps.getfile.outputs.files }} - - name: Generate PNG Diagrams - uses: UWB-Biocomputing/plantuml-github-action@main - with: - args: -o "diagrams" -v -tpng ${{ steps.getfile.outputs.files }} - - name: Push Local Changes - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: "Generate SVG and PNG images for PlantUML diagrams" - branch: ${{ github.head_ref }} diff --git a/.github/workflows/publish-gh-pages.yml b/.github/workflows/publish-gh-pages.yml deleted file mode 100644 index 0ae0a8611..000000000 --- a/.github/workflows/publish-gh-pages.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Publish GitHub Pages Manually - -on: workflow_dispatch - -jobs: - deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout Source - uses: actions/checkout@v3 - - name: Generate Doxygen - uses: mattnotmitt/doxygen-action@v1 - with: - doxyfile-path: docs/Doxygen/Doxyfile - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: docs - destination_dir: docs - force_orphan: true \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/regression-tests.yml similarity index 84% rename from .github/workflows/tests.yml rename to .github/workflows/regression-tests.yml index 9bac1793f..6ba3e22dd 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/regression-tests.yml @@ -1,40 +1,60 @@ -name: Unit and Regression Tests +name: Regression Tests # Any changes made to documentation won't trigger tests. on: push: - branches: [master, development] - paths-ignore: - - ".github/**" # Ignore .github folder - - "**/Doxyfile" # Ignore changes to Doxygen config - - "docs/**" # Ignore documentation folder - - "*.md" # Ignore Markdown files + branches: + - master + - SharedDevelopment + - '*Dev' + - '*Development' + - 'release-*' + - 'hotfix-*' + paths: + - 'Simulator/**' + - 'Testing/**' + - 'ThirdParty/**' + - 'Tools/**' + - 'configfiles/**' + - 'CMakeLists.txt' + - 'config.h.in' + - '**.cpp' + - '**.h' + - '**.cu' + - '**.c' + - '**.hpp' pull_request: types: [opened, synchronize, reopened] - paths-ignore: - - ".github/**" # Ignore .github folder - - "**/Doxyfile" # Ignore changes to Doxygen config - - "docs/**" # Ignore documentation folder - - "*.md" # Ignore Markdown files + paths: + - 'Simulator/**' + - 'Testing/**' + - 'ThirdParty/**' + - 'Tools/**' + - 'configfiles/**' + - 'CMakeLists.txt' + - 'config.h.in' + - '**.cpp' + - '**.h' + - '**.cu' + - '**.c' + - '**.hpp' defaults: run: working-directory: build jobs: - build: + regression-tests: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 # install Boost Graph Library - name: bgl run: sudo apt-get update && sudo apt-get install -yq libboost-graph-dev # configure and build Simulator - name: configure run: cmake .. - - id: build - name: build - run: make -j - - name: run unit tests - run: ./tests + - id: build-simulator + name: build simulator + run: make cgraphitti -j - name: build compare_matrices run: | cd ../Testing/RegressionTesting diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 000000000..58370cd3f --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,59 @@ +name: Unit Tests +# Any changes made to documentation won't trigger tests. +on: + push: + branches: + - master + - SharedDevelopment + - '*Dev' + - '*Development' + - 'release-*' + - 'hotfix-*' + paths: + - 'Simulator/**' + - 'Testing/**' + - 'ThirdParty/**' + - 'Tools/**' + - 'configfiles/**' + - 'CMakeLists.txt' + - 'config.h.in' + - '**.cpp' + - '**.h' + - '**.cu' + - '**.c' + - '**.hpp' + pull_request: + types: [opened, synchronize, reopened] + paths: + - 'Simulator/**' + - 'Testing/**' + - 'ThirdParty/**' + - 'Tools/**' + - 'configfiles/**' + - 'CMakeLists.txt' + - 'config.h.in' + - '**.cpp' + - '**.h' + - '**.cu' + - '**.c' + - '**.hpp' +defaults: + run: + working-directory: build + +jobs: + unit-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + # install Boost Graph Library + - name: bgl + run: sudo apt-get update && sudo apt-get install -yq libboost-graph-dev + # configure and build unit tests + - name: configure + run: cmake .. + - id: build-tests + name: build tests + run: make tests -j + - name: run unit tests + run: ./tests diff --git a/README.md b/README.md index 1744c006b..d4ec6bfb3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ -[![DOI](https://zenodo.org/badge/273115663.svg)](https://zenodo.org/badge/latestdoi/273115663) -![Unit test workflow](https://github.com/UWB-Biocomputing/Graphitti/workflows/Unit%20Tests/badge.svg) -[![Check for Code Style Violations](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/format.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/format.yml) +[![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.4678632-blue.svg)](https://zenodo.org/badge/latestdoi/273115663) +[![Documentation](https://img.shields.io/badge/docs-online-blue.svg)](https://uwb-biocomputing.github.io/Graphitti/) +[![Unit Tests](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/unit-tests.yml) +[![Regression Tests](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/regression-tests.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/regression-tests.yml) +[![Code Style](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/format.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/format.yml) +[![GitHub Pages](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/gh-pages.yml) +[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE) # Graphitti diff --git a/Testing/RunTests.sh b/Testing/RunTests.sh index 00b7c655b..f4bb880c0 100644 --- a/Testing/RunTests.sh +++ b/Testing/RunTests.sh @@ -2,8 +2,8 @@ ############################################################################################ # Scrip for running Graphitti unit tests and regression tests. # -# It contains the same tests as the tests.yml workflow that is executed by a -# GitHub action on Pull Requests: +# It contains the same tests as the CI workflows that are executed by +# GitHub actions on Pull Requests: # # 1. Build Graphitti # 2. Runs our unit tests diff --git a/docs/Developer/ClassDiagrams/connections.puml b/docs/Developer/ClassDiagrams/connections.puml deleted file mode 100644 index f673f44d8..000000000 --- a/docs/Developer/ClassDiagrams/connections.puml +++ /dev/null @@ -1,543 +0,0 @@ -@startuml ConnectionsClassDiagram - - - - - -/' Objects '/ - -class AllDSSynapses { - +AllDSSynapses() - +AllDSSynapses(const int numVertices, const int maxEdges) - +~AllDSSynapses() - +{static} Create() : AllEdges* - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* - #allocDeviceStruct(AllDSSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - #copyDeviceToHost(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllDSSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllDynamicSTDPSynapses { - +AllDynamicSTDPSynapses() - +AllDynamicSTDPSynapses(const int numVertices, const int maxEdges) - +~AllDynamicSTDPSynapses() - +{static} Create() : AllEdges* - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* - #allocDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - #copyDeviceToHost(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -abstract class AllEdges { - +AllEdges() - +AllEdges(const int numVertices, const int maxEdges) - +~AllEdges() - +W_ : BGFLOAT* - +maxEdgesPerVertex_ : BGSIZE - +totalEdgeCount_ : BGSIZE - +edgeCounts_ : BGSIZE* - +inUse_ : bool* - #edgeOrdinalToType(const int typeOrdinal) : edgeType - +type_ : edgeType* - +countVertices_ : int - +destVertexIndex_ : int* - +sourceVertexIndex_ : int* - #edgeLogger_ : log4cplus::Logger - #fileLogger_ : log4cplus::Logger - +addEdge(edgeType type, const int srcVertex, const int destVertex, const BGFLOAT deltaT) : BGSIZE - +{abstract} advanceEdge(const BGSIZE iEdg, AllVertices* vertices) : void - +{abstract} advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - +advanceEdges(AllVertices* vertices, EdgeIndexMap* edgeIndexMap) : void - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice) : void - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void - +{abstract} copyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : void - +{abstract} copyEdgeDeviceToHost(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - +createEdgeIndexMap(shared_ptr edgeIndexMap) : void - +{abstract} deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +eraseEdge(const int neuronIndex, const BGSIZE iEdg) : void - +load(Archive& archive) : void - +loadParameters() : void - +{abstract} printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +save(Archive& archive) : void {query} - +{abstract} setAdvanceEdgesDeviceParams() : void - +{abstract} setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class All911Edges { - +All911Edges() - +All911Edges(int numVertices, int maxEdges) - +{abstract} ~All911Edges() - +{static} Create() : AllEdges* - +{abstract} setupEdges() : void <> - +{abstract} createEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : void <> - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice) : void - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} copyEdgeDeviceToHost(void* allEdgesDevice) : void - +{abstract} copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void - +{abstract} advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - +{abstract} setAdvanceEdgesDeviceParams() : void - +{abstract} setEdgeClassID() : void - +{abstract} printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +{abstract} advanceEdges(AllVertices& vertices, EdgeIndexMap& edgeIndexMap) : void - +advance911Edge(BGSIZE iEdg, All911Vertices& vertices) : void - +{abstract} advanceEdge(BGSIZE iEdg, AllVertices& vertices) : void <> - +isAvailable_ : unique_ptr - +isRedial_ : unique_ptr - +call_ : vector -} - - -class AllNeuroEdges { - +AllNeuroEdges() - +~AllNeuroEdges() - +psr_ : BGFLOAT* - +edgSign(const edgeType type) : int - +{static} SYNAPSE_STRENGTH_ADJUSTMENT : static constexpr BGFLOAT - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllSTDPSynapses { - +AllSTDPSynapses() - +AllSTDPSynapses(const int numVertices, const int maxEdges) - +~AllSTDPSynapses() - +{static} Create() : AllEdges* - +Aneg_E_ : BGFLOAT - +Aneg_I_ : BGFLOAT - +Apos_E_ : BGFLOAT - +Apos_I_ : BGFLOAT - +Wex_E_ : BGFLOAT - +Wex_I_ : BGFLOAT - +defaultSTDPgap_ : BGFLOAT - #synapticWeightModification(const BGSIZE iEdg, BGFLOAT edgeWeight, double delta) : BGFLOAT - +tauneg_E_ : BGFLOAT - +tauneg_I_ : BGFLOAT - +taupos_E_ : BGFLOAT - +taupos_I_ : BGFLOAT - +tauspost_E_ : BGFLOAT - +tauspost_I_ : BGFLOAT - +tauspre_E_ : BGFLOAT - +tauspre_I_ : BGFLOAT - +Aneg_ : BGFLOAT* - +Apos_ : BGFLOAT* - +STDPgap_ : BGFLOAT* - +Wex_ : BGFLOAT* - +muneg_ : BGFLOAT* - +mupos_ : BGFLOAT* - +tauneg_ : BGFLOAT* - +taupos_ : BGFLOAT* - +tauspost_ : BGFLOAT* - +tauspre_ : BGFLOAT* - +allowBackPropagation() : bool - #isSpikeQueuePost(const BGSIZE iEdg) : bool - +delayIndexPost_ : int* - +delayQueuePostLength_ : int* - +totalDelayPost_ : int* - +delayQueuePost_ : uint32_t* - +advanceEdge(const BGSIZE iEdg, AllVertices* neurons) : void - +advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - #allocDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyDeviceToHost(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - #initSpikeQueue(const BGSIZE iEdg) : void - +loadParameters() : void - +postSpikeHit(const BGSIZE iEdg) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - -stdpLearning(const BGSIZE iEdg, double delta, double epost, double epre, int srcVertex, int destVertex) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllSpikingSynapses { - +AllSpikingSynapses() - +AllSpikingSynapses(const int numVertices, const int maxEdges) - +~AllSpikingSynapses() - +{static} Create() : AllEdges* - +delay_EE_ : BGFLOAT - +delay_EI_ : BGFLOAT - +delay_IE_ : BGFLOAT - +delay_II_ : BGFLOAT - +tau_EE_ : BGFLOAT - +tau_EI_ : BGFLOAT - +tau_IE_ : BGFLOAT - +tau_II_ : BGFLOAT - +decay_ : BGFLOAT* - +tau_ : BGFLOAT* - +allowBackPropagation() : bool - #isSpikeQueue(const BGSIZE iEdg) : bool - #updateDecay(const BGSIZE iEdg, const BGFLOAT deltaT) : bool - +delayIndex_ : int* - +delayQueueLength_ : int* - +totalDelay_ : int* - +delayQueue_ : uint32_t* - +advanceEdge(const BGSIZE iEdg, AllVertices* neurons) : void - +advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - #allocDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void - +copyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : void - #copyDeviceToHost(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllSpikingSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - #initSpikeQueue(const BGSIZE iEdg) : void - +loadParameters() : void - +postSpikeHit(const BGSIZE iEdg) : void - +preSpikeHit(const BGSIZE iEdg) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setAdvanceEdgesDeviceParams() : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class ConnGrowth { - +ConnGrowth() - +{abstract} ~ConnGrowth() - +{static} Create() : Connections* - +{abstract} setup() : void <> - +{abstract} loadParameters() : void <> - +{abstract} printParameters() : void {query} <> - +{abstract} updateConnections(AllVertices& vertices) : bool <> - +serialize(Archive& archive) : void - +printRadii() : void {query} - +{abstract} updateEdgesWeights(int numVertices, AllVertices& vertices, AllEdges& edges, AllVerticesDeviceProperties* allVerticesDevice, AllEdgesDeviceProperties* allEdgesDevice, Layout& layout) : void <> - +{abstract} updateEdgesWeights() : void <> - -updateConns(AllVertices& neurons) : void - -updateFrontiers() : void - -updateOverlap() : void - +growthParams_ : GrowthParams - +radiiSize_ : int - +W_ : CompleteMatrix - +radii_ : VectorMatrix - +rates_ : VectorMatrix - +delta_ : CompleteMatrix - +area_ : CompleteMatrix - +outgrowth_ : VectorMatrix - +deltaR_ : VectorMatrix -} - - -class ConnStatic { - +ConnStatic() - +~ConnStatic() - -excWeight_ : BGFLOAT - +getConnsRadiusThresh() : BGFLOAT {query} - -inhWeight_ : BGFLOAT - -rewiringProbability_ : BGFLOAT - -threshConnsRadius_ : BGFLOAT - -WCurrentEpoch_ : BGFLOAT* - +getWCurrentEpoch() : BGFLOAT* {query} - +{static} Create() : Connections* - -connsPerVertex_ : int - -radiiSize_ : int - -destVertexIndexCurrentEpoch_ : int* - +getDestVertexIndexCurrentEpoch() : int* {query} - +getSourceVertexIndexCurrentEpoch() : int* {query} - -sourceVertexIndexCurrentEpoch_ : int* - +load(Archive& archive) : void - +loadParameters() : void - +printParameters() : void {query} - +save(Archive& archive) : void {query} - +setupConnections(Layout* layout, AllVertices* vertices, AllEdges* edges) : void -} - - -abstract class Connections { - +Connections() - +{abstract} ~Connections() - +getEdges() : AllEdges& {query} - +getEdgeIndexMap() : EdgeIndexMap& {query} - +createEdgeIndexMap() : void - +{abstract} setup() : void - +{abstract} registerGraphProperties() : void - +{abstract} loadParameters() : void - +{abstract} printParameters() : void {query} - +{abstract} updateConnections(AllVertices& vertices) : bool - +serialize(Archive& archive) : void - +{abstract} updateEdgesWeights(int numVertices, AllVertices& vertices, AllEdges& edges, AllVerticesDeviceProperties* allVerticesDevice, AllEdgesDeviceProperties* allEdgesDevice, Layout& layout) : void - +{abstract} updateEdgesWeights() : void - #edges_ : shared_ptr - #synapseIndexMap_ : shared_ptr - #fileLogger_ : log4cplus::Logger - #edgeLogger_ : log4cplus::Logger -} - - -class ConnectionsFactory { - -ConnectionsFactory() - +~ConnectionsFactory() - -invokeCreateFunction(const string& className) : Connections* - +{static} getInstance() : ConnectionsFactory* - -createFunctions : ConnectionsFunctionMap - -connectionsInstance : shared_ptr - +createConnections(const string& className) : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class EdgesFactory { - -EdgesFactory() - +~EdgesFactory() - -invokeCreateFunction(const string& className) : AllEdges* - +{static} getInstance() : EdgesFactory* - -createFunctions : EdgesFunctionMap - +createEdges(const string& className) : shared_ptr - -edgesInstance_ : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -enum enumClassSynapses { - classAllDSSynapses - classAllDynamicSTDPSynapses - classAllSTDPSynapses - classAllSpikingSynapses - undefClassSynapses -} - - -class AllDSSynapsesDeviceProperties { - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* -} - - -class AllDynamicSTDPSynapsesDeviceProperties { - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* -} - - -class AllEdgesDeviceProperties { - +W_ : BGFLOAT* - +psr_ : BGFLOAT* - +maxEdgesPerVertex_ : BGSIZE - +totalEdgeCount_ : BGSIZE - +edgeCounts_ : BGSIZE* - +inUse_ : bool* - +type_ : edgeType* - +countVertices_ : int - +destVertexIndex_ : int* - +sourceVertexIndex_ : int* -} - - -class AllSTDPSynapsesDeviceProperties { - +Aneg_ : BGFLOAT* - +Apos_ : BGFLOAT* - +STDPgap_ : BGFLOAT* - +Wex_ : BGFLOAT* - +muneg_ : BGFLOAT* - +mupos_ : BGFLOAT* - +tauneg_ : BGFLOAT* - +taupos_ : BGFLOAT* - +tauspost_ : BGFLOAT* - +tauspre_ : BGFLOAT* - +useFroemkeDanSTDP_ : bool* - +delayIndexPost_ : int* - +delayQueuePostLength_ : int* - +totalDelayPost_ : int* - +delayQueuePost_ : uint32_t* -} - - -class AllSpikingSynapsesDeviceProperties { - +decay_ : BGFLOAT* - +tau_ : BGFLOAT* - +delayIndex_ : int* - +delayQueueLength_ : int* - +totalDelay_ : int* - +delayQueue_ : uint32_t* -} - - -class ConnGrowth::GrowthParams { - +beta : BGFLOAT - +epsilon : BGFLOAT - +maxRate : BGFLOAT - +minRadius : BGFLOAT - +rho : BGFLOAT - +startRadius : BGFLOAT - +targetRate : BGFLOAT -} - - -class ConnStatic::DistDestVertex { - +dist : BGFLOAT - +operator<(DistDestVertex other) : bool {query} - +destVertex : int -} - - - - - -/' Inheritance relationships '/ - -.AllEdges <|-- .AllNeuroEdges - - -.AllEdges <|-- .All911Edges - - -.AllEdgesDeviceProperties <|-- .AllSpikingSynapsesDeviceProperties - - -.AllNeuroEdges <|-- .AllSpikingSynapses - - -.AllSTDPSynapses <|-- .AllDynamicSTDPSynapses - - -.AllSTDPSynapsesDeviceProperties <|-- .AllDynamicSTDPSynapsesDeviceProperties - - -.AllSpikingSynapses <|-- .AllDSSynapses - - -.AllSpikingSynapses <|-- .AllSTDPSynapses - - -.AllSpikingSynapsesDeviceProperties <|-- .AllDSSynapsesDeviceProperties - - -.AllSpikingSynapsesDeviceProperties <|-- .AllSTDPSynapsesDeviceProperties - - -.Connections <|-- .ConnGrowth - - -.Connections <|-- .ConnStatic - - - - - -/' Aggregation relationships '/ - -.Connections *-- .AllEdges - - -.ConnectionsFactory *-- .Connections - - -.EdgesFactory *-- .AllEdges - - - - - - -/' Nested objects '/ - -.ConnGrowth +-- .ConnGrowth::GrowthParams - - -.ConnStatic +-- .ConnStatic::DistDestVertex - - - - -@enduml diff --git a/docs/Developer/ClassDiagrams/core.puml b/docs/Developer/ClassDiagrams/core.puml deleted file mode 100644 index 45a25c344..000000000 --- a/docs/Developer/ClassDiagrams/core.puml +++ /dev/null @@ -1,194 +0,0 @@ -@startuml GraphittiCoreClassDiagram - - - - - -/' Objects '/ - -class CPUModel { - +CPUModel() - +{abstract} ~CPUModel() - +{abstract} finish() : void <> - +{abstract} advance() : void <> - +{abstract} updateConnections() : void <> - +{abstract} copyGPUtoCPU() : void <> - +{abstract} copyCPUtoGPU() : void <> -} - - -class GPUModel { - +GPUModel() - +{abstract} ~GPUModel() - +{abstract} setupSim() : void <> - +{abstract} finish() : void <> - +{abstract} advance() : void <> - +{abstract} updateConnections() : void <> - +{abstract} copyGPUtoCPU() : void <> - +{abstract} copyCPUtoGPU() : void <> - +printGPUEdgesPropsModel() : void {query} - #allocDeviceStruct(void* * allVerticesDevice, void** allEdgesDevice) : void - #{abstract} deleteDeviceStruct(void* * allVerticesDevice, void** allEdgesDevice) : void - #randNoise_d : float* - #edgeIndexMapDevice_ : EdgeIndexMapDevice* - #allEdgesDevice_ : AllEdgesDeviceProperties* - #allVerticesDevice_ : AllVerticesDeviceProperties* - -allocEdgeIndexMap(int count) : void - -deleteEdgeIndexMap() : void - +copyEdgeIndexMapHostToDevice(EdgeIndexMap& edgeIndexMapHost, int numVertices) : void - -updateHistory() : void - -eraseEdge(AllEdges& edges, int vertexIndex, int edgeIndex) : void - -addEdge(AllEdges& edges, edgeType type, int srcVertex, int destVertex, Coordinate& source, Coordinate& dest, BGFLOAT deltaT) : void - -createEdge(AllEdges& edges, int vertexIndex, int edgeIndex, Coordinate source, Coordinate dest, BGFLOAT deltaT, edgeType type) : void - +normalMTGPU(float *randNoise_d) : void - +initMTGPU(unsigned int seed, unsigned int blocks, unsigned int threads, unsigned int nPerRng, unsigned int mt_rng_count) : void -} - - -abstract class Model { - +Model() - +~Model() - #fileLogger_ : log4cplus::Logger - #connections_ : shared_ptr - +getConnections() : shared_ptr {query} - +getRecorder() : shared_ptr {query} - #recorder_ : shared_ptr - +getLayout() : shared_ptr {query} - #layout_ : shared_ptr - +{abstract} advance() : void - #{abstract} copyCPUtoGPU() : void - #{abstract} copyGPUtoCPU() : void - #createAllVertices() : void - +{abstract} finish() : void - #logSimStep() : void {query} - +saveResults() : void - +setupSim() : void - +{abstract} updateConnections() : void - +updateHistory() : void -} - - -class Simulator { - -Simulator() - +~Simulator() - -deltaT_ : BGFLOAT - -epochDuration_ : BGFLOAT - +getDeltaT() : BGFLOAT {query} - +getEpochDuration() : BGFLOAT {query} - +getMaxRate() : BGFLOAT {query} - -maxRate_ : BGFLOAT - +{static} getInstance() : Simulator& - +getShort_timer() : Timer - +getTimer() : Timer - -short_timer : Timer - -timer : Timer - +instantiateSimulatorObjects() : bool - +getRgEndogenouslyActiveNeuronMap() : bool* {query} - -rgEndogenouslyActiveNeuronMap_ : bool* - -currentEpoch_ : int - +getCurrentStep() : int {query} - +getHeight() : int {query} - +getMaxEdgesPerVertex() : int {query} - +getMaxFiringRate() : int {query} - +getNumEpochs() : int {query} - +getTotalVertices() : int {query} - +getWidth() : int {query} - -height_ : int - -maxEdgesPerVertex_ : int - -maxFiringRate_ : int - -numEpochs_ : int - -totalNeurons_ : int - -width_ : int - -consoleLogger_ : log4cplus::Logger - -edgeLogger_ : log4cplus::Logger - -fileLogger_ : log4cplus::Logger - +getInitRngSeed() : long {query} - +getNoiseRngSeed() : long {query} - -initRngSeed_ : long - -noiseRngSeed_ : long - +getModel() : shared_ptr {query} - -model_ : shared_ptr - -configFileName_ : string - -deserializationFileName_ : string - +getConfigFileName() : string {query} - +getDeserializationFileName() : string {query} - +getSerializationFileName() : string {query} - +getStimulusFileName() : string {query} - -serializationFileName_ : string - -stimulusFileName_ : string - +getRgNeuronTypeMap() : vertexType* {query} - -rgNeuronTypeMap_ : vertexType* - +advanceEpoch(const int& currentEpoch) : void {query} - +copyCPUSynapseToGPU() : void - +copyGPUSynapseToCPU() : void - +finish() : void - -freeResources() : void - +loadParameters() : void - +printParameters() : void {query} - +reset() : void - +saveResults() : void {query} - +setConfigFileName(const string& fileName) : void - +setDeserializationFileName(const string& fileName) : void - +setSerializationFileName(const string& fileName) : void - +setStimulusFileName(const string& fileName) : void - +setup() : void - +simulate() : void -} - - -class EdgeIndexMapDevice { - +outgoingEdgeIndexMap_ : BGSIZE* - +outgoingEdgeBegin_ : BGSIZE* - +outgoingEdgeCount_ : BGSIZE* - +incomingEdgeIndexMap_ : BGSIZE* - +incomingEdgeBegin_ : BGSIZE* - +incomingEdgeCount_ : BGSIZE* -} - - -class AllEdgesDeviceProperties { - +sourceVertexIndex_ : int* - +destVertexIndex_ : int* - +W_ : BGFLOAT* - +type_ : edgeType* - +inUse_ : unsigned char* - +edgeCounts_ : BGSIZE* - +totalEdgeCount_ : BGSIZE - +maxEdgesPerVertex_ : BGSIZE - +countVertices_ : int -} - - -class AllVerticesDeviceProperties { - -} - - - - - -/' Inheritance relationships '/ - -.Model <|-- .CPUModel - - -.Model <|-- .GPUModel - - - - - -/' Aggregation relationships '/ - -.GPUModel o-- .EdgeIndexMapDevice -.GPUModel o-- .AllEdgesDeviceProperties -.GPUModel o-- .AllVerticesDeviceProperties - -.Simulator *-- .Model - - - - - - -@enduml diff --git a/docs/Developer/ClassDiagrams/diagrams/ConnectionsClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/ConnectionsClassDiagram.png deleted file mode 100644 index 76f444422..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/ConnectionsClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/ConnectionsClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/ConnectionsClassDiagram.svg deleted file mode 100644 index 7ed2c2752..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/ConnectionsClassDiagram.svg +++ /dev/null @@ -1 +0,0 @@ -AllDSSynapsesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDSSynapses()AllDSSynapses(const int numVertices, const int maxEdges)~AllDSSynapses()Create() : AllEdges*allocDeviceStruct(AllDSSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceToHost(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllDSSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllDynamicSTDPSynapsesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDynamicSTDPSynapses()AllDynamicSTDPSynapses(const int numVertices, const int maxEdges)~AllDynamicSTDPSynapses()Create() : AllEdges*allocDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceToHost(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllEdgesW_ : BGFLOAT*maxEdgesPerVertex_ : BGSIZEtotalEdgeCount_ : BGSIZEedgeCounts_ : BGSIZE*inUse_ : bool*type_ : edgeType*countVertices_ : intdestVertexIndex_ : int*sourceVertexIndex_ : int*edgeLogger_ : log4cplus::LoggerfileLogger_ : log4cplus::LoggerAllEdges()AllEdges(const int numVertices, const int maxEdges)~AllEdges()edgeOrdinalToType(const int typeOrdinal) : edgeTypeaddEdge(edgeType type, const int srcVertex, const int destVertex, const BGFLOAT deltaT) : BGSIZEadvanceEdge(const BGSIZE iEdg, AllVertices* vertices) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidadvanceEdges(AllVertices* vertices, EdgeIndexMap* edgeIndexMap) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyDeviceEdgeCountsToHost(void* allEdgesDevice) : voidcopyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voidcreateEdgeIndexMap(shared_ptr<EdgeIndexMap> edgeIndexMap) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voideraseEdge(const int neuronIndex, const BGSIZE iEdg) : voidload(Archive& archive) : voidloadParameters() : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidsave(Archive& archive) : void {query}setAdvanceEdgesDeviceParams() : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}All911EdgesisAvailable_ : unique_ptr<bool[]>isRedial_ : unique_ptr<bool[]>call_ : vector<Call>All911Edges()All911Edges(int numVertices, int maxEdges)~All911Edges()Create() : AllEdges*setupEdges() : void «override»createEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : void «override»allocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyDeviceEdgeCountsToHost(void* allEdgesDevice) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidsetAdvanceEdgesDeviceParams() : voidsetEdgeClassID() : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}advanceEdges(AllVertices& vertices, EdgeIndexMap& edgeIndexMap) : voidadvance911Edge(BGSIZE iEdg, All911Vertices& vertices) : voidadvanceEdge(BGSIZE iEdg, AllVertices& vertices) : void «override»AllNeuroEdgespsr_ : BGFLOAT*SYNAPSE_STRENGTH_ADJUSTMENT : static constexpr BGFLOATAllNeuroEdges()~AllNeuroEdges()edgSign(const edgeType type) : intprintSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllSTDPSynapsesAneg_E_ : BGFLOATAneg_I_ : BGFLOATApos_E_ : BGFLOATApos_I_ : BGFLOATWex_E_ : BGFLOATWex_I_ : BGFLOATdefaultSTDPgap_ : BGFLOATtauneg_E_ : BGFLOATtauneg_I_ : BGFLOATtaupos_E_ : BGFLOATtaupos_I_ : BGFLOATtauspost_E_ : BGFLOATtauspost_I_ : BGFLOATtauspre_E_ : BGFLOATtauspre_I_ : BGFLOATAneg_ : BGFLOAT*Apos_ : BGFLOAT*STDPgap_ : BGFLOAT*Wex_ : BGFLOAT*muneg_ : BGFLOAT*mupos_ : BGFLOAT*tauneg_ : BGFLOAT*taupos_ : BGFLOAT*tauspost_ : BGFLOAT*tauspre_ : BGFLOAT*delayIndexPost_ : int*delayQueuePostLength_ : int*totalDelayPost_ : int*delayQueuePost_ : uint32_t*AllSTDPSynapses()AllSTDPSynapses(const int numVertices, const int maxEdges)~AllSTDPSynapses()Create() : AllEdges*synapticWeightModification(const BGSIZE iEdg, BGFLOAT edgeWeight, double delta) : BGFLOATallowBackPropagation() : boolisSpikeQueuePost(const BGSIZE iEdg) : booladvanceEdge(const BGSIZE iEdg, AllVertices* neurons) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidallocDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyDeviceToHost(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidinitSpikeQueue(const BGSIZE iEdg) : voidloadParameters() : voidpostSpikeHit(const BGSIZE iEdg) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidstdpLearning(const BGSIZE iEdg, double delta, double epost, double epre, int srcVertex, int destVertex) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllSpikingSynapsesdelay_EE_ : BGFLOATdelay_EI_ : BGFLOATdelay_IE_ : BGFLOATdelay_II_ : BGFLOATtau_EE_ : BGFLOATtau_EI_ : BGFLOATtau_IE_ : BGFLOATtau_II_ : BGFLOATdecay_ : BGFLOAT*tau_ : BGFLOAT*delayIndex_ : int*delayQueueLength_ : int*totalDelay_ : int*delayQueue_ : uint32_t*AllSpikingSynapses()AllSpikingSynapses(const int numVertices, const int maxEdges)~AllSpikingSynapses()Create() : AllEdges*allowBackPropagation() : boolisSpikeQueue(const BGSIZE iEdg) : boolupdateDecay(const BGSIZE iEdg, const BGFLOAT deltaT) : booladvanceEdge(const BGSIZE iEdg, AllVertices* neurons) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidallocDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceEdgeCountsToHost(void* allEdgesDevice) : voidcopyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : voidcopyDeviceToHost(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllSpikingSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidinitSpikeQueue(const BGSIZE iEdg) : voidloadParameters() : voidpostSpikeHit(const BGSIZE iEdg) : voidpreSpikeHit(const BGSIZE iEdg) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetAdvanceEdgesDeviceParams() : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}ConnGrowthgrowthParams_ : GrowthParamsradiiSize_ : intW_ : CompleteMatrixradii_ : VectorMatrixrates_ : VectorMatrixdelta_ : CompleteMatrixarea_ : CompleteMatrixoutgrowth_ : VectorMatrixdeltaR_ : VectorMatrixConnGrowth()~ConnGrowth()Create() : Connections*setup() : void «override»loadParameters() : void «override»printParameters() : void {query} «override»updateConnections(AllVertices& vertices) : bool «override»serialize(Archive& archive) : voidprintRadii() : void {query}updateEdgesWeights(int numVertices, AllVertices& vertices, AllEdges& edges, AllVerticesDeviceProperties* allVerticesDevice, AllEdgesDeviceProperties* allEdgesDevice, Layout& layout) : void «override»updateEdgesWeights() : void «override»updateConns(AllVertices& neurons) : voidupdateFrontiers() : voidupdateOverlap() : voidConnStaticexcWeight_ : BGFLOATinhWeight_ : BGFLOATrewiringProbability_ : BGFLOATthreshConnsRadius_ : BGFLOATWCurrentEpoch_ : BGFLOAT*connsPerVertex_ : intradiiSize_ : intdestVertexIndexCurrentEpoch_ : int*sourceVertexIndexCurrentEpoch_ : int*ConnStatic()~ConnStatic()getConnsRadiusThresh() : BGFLOAT {query}getWCurrentEpoch() : BGFLOAT* {query}Create() : Connections*getDestVertexIndexCurrentEpoch() : int* {query}getSourceVertexIndexCurrentEpoch() : int* {query}load(Archive& archive) : voidloadParameters() : voidprintParameters() : void {query}save(Archive& archive) : void {query}setupConnections(Layout* layout, AllVertices* vertices, AllEdges* edges) : voidConnectionsedges_ : shared_ptr<AllEdges>synapseIndexMap_ : shared_ptr<EdgeIndexMap>fileLogger_ : log4cplus::LoggeredgeLogger_ : log4cplus::LoggerConnections()~Connections()getEdges() : AllEdges& {query}getEdgeIndexMap() : EdgeIndexMap& {query}createEdgeIndexMap() : voidsetup() : voidregisterGraphProperties() : voidloadParameters() : voidprintParameters() : void {query}updateConnections(AllVertices& vertices) : boolserialize(Archive& archive) : voidupdateEdgesWeights(int numVertices, AllVertices& vertices, AllEdges& edges, AllVerticesDeviceProperties* allVerticesDevice, AllEdgesDeviceProperties* allEdgesDevice, Layout& layout) : voidupdateEdgesWeights() : voidConnectionsFactorycreateFunctions : ConnectionsFunctionMapconnectionsInstance : shared_ptr<Connections>ConnectionsFactory()~ConnectionsFactory()invokeCreateFunction(const string& className) : Connections*getInstance() : ConnectionsFactory*createConnections(const string& className) : shared_ptr<Connections>registerClass(const string& className, CreateFunction function) : voidEdgesFactorycreateFunctions : EdgesFunctionMapedgesInstance_ : shared_ptr<AllEdges>EdgesFactory()~EdgesFactory()invokeCreateFunction(const string& className) : AllEdges*getInstance() : EdgesFactory*createEdges(const string& className) : shared_ptr<AllEdges>registerClass(const string& className, CreateFunction function) : voidenumClassSynapsesclassAllDSSynapsesclassAllDynamicSTDPSynapsesclassAllSTDPSynapsesclassAllSpikingSynapsesundefClassSynapsesAllDSSynapsesDevicePropertiesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDynamicSTDPSynapsesDevicePropertiesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllEdgesDevicePropertiesW_ : BGFLOAT*psr_ : BGFLOAT*maxEdgesPerVertex_ : BGSIZEtotalEdgeCount_ : BGSIZEedgeCounts_ : BGSIZE*inUse_ : bool*type_ : edgeType*countVertices_ : intdestVertexIndex_ : int*sourceVertexIndex_ : int*AllSTDPSynapsesDevicePropertiesAneg_ : BGFLOAT*Apos_ : BGFLOAT*STDPgap_ : BGFLOAT*Wex_ : BGFLOAT*muneg_ : BGFLOAT*mupos_ : BGFLOAT*tauneg_ : BGFLOAT*taupos_ : BGFLOAT*tauspost_ : BGFLOAT*tauspre_ : BGFLOAT*useFroemkeDanSTDP_ : bool*delayIndexPost_ : int*delayQueuePostLength_ : int*totalDelayPost_ : int*delayQueuePost_ : uint32_t*AllSpikingSynapsesDevicePropertiesdecay_ : BGFLOAT*tau_ : BGFLOAT*delayIndex_ : int*delayQueueLength_ : int*totalDelay_ : int*delayQueue_ : uint32_t*ConnGrowth::GrowthParamsbeta : BGFLOATepsilon : BGFLOATmaxRate : BGFLOATminRadius : BGFLOATrho : BGFLOATstartRadius : BGFLOATtargetRate : BGFLOATConnStatic::DistDestVertexdist : BGFLOATdestVertex : intoperator<(DistDestVertex other) : bool {query} \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/EdgesClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/EdgesClassDiagram.png deleted file mode 100644 index d6c4729e3..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/EdgesClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/EdgesClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/EdgesClassDiagram.svg deleted file mode 100644 index ed926bde9..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/EdgesClassDiagram.svg +++ /dev/null @@ -1 +0,0 @@ -AllDSSynapsesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDSSynapses()AllDSSynapses(const int numVertices, const int maxEdges)~AllDSSynapses()Create() : AllEdges*allocDeviceStruct(AllDSSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceToHost(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllDSSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllDynamicSTDPSynapsesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDynamicSTDPSynapses()AllDynamicSTDPSynapses(const int numVertices, const int maxEdges)~AllDynamicSTDPSynapses()Create() : AllEdges*allocDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceToHost(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllEdgesfileLogger_ : log4cplus::LoggeredgeLogger_ : log4cplus::LoggersourceVertexIndex_ : vector<int>destVertexIndex_ : vector<int>W_ : vector<BGFLOAT>type_ : vector<edgeType>inUse_ : vector<unsigned char>edgeCounts_ : vector<BGSIZE>totalEdgeCount_ : BGSIZEmaxEdgesPerVertex_ : BGSIZEcountVertices_ : intAllEdges()AllEdges(int numVertices, int maxEdges)~AllEdges()setupEdges() : voidloadParameters() : voidprintParameters() : void {query}addEdge(edgeType type, int srcVertex, int destVertex, BGFLOAT deltaT) : BGSIZEcreateEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : voidcreateEdgeIndexMap(EdgeIndexMap& edgeIndexMap) : voidserialize(Archive& archive) : voidsetupEdges(int numVertices, int maxEdges) : voidreadEdge(istream& input, BGSIZE iEdg) : voidwriteEdge(ostream& output, BGSIZE iEdg) : void {query}edgeOrdinalToType(int typeOrdinal) : edgeTypeallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyDeviceEdgeCountsToHost(void* allEdgesDevice) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidsetAdvanceEdgesDeviceParams() : voidsetEdgeClassID() : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}advanceEdges(AllVertices& vertices, EdgeIndexMap& edgeIndexMap) : voidadvanceEdge(BGSIZE iEdg, AllVertices& vertices) : voideraseEdge(int vertexIndex, BGSIZE iEdg) : voidAll911EdgesisAvailable_ : unique_ptr<bool[]>isRedial_ : unique_ptr<bool[]>call_ : vector<Call>All911Edges()All911Edges(int numVertices, int maxEdges)~All911Edges()Create() : AllEdges*setupEdges() : void «override»createEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : void «override»allocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyDeviceEdgeCountsToHost(void* allEdgesDevice) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidsetAdvanceEdgesDeviceParams() : voidsetEdgeClassID() : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}advanceEdges(AllVertices& vertices, EdgeIndexMap& edgeIndexMap) : voidadvance911Edge(BGSIZE iEdg, All911Vertices& vertices) : voidadvanceEdge(BGSIZE iEdg, AllVertices& vertices) : void «override»AllNeuroEdgesSYNAPSE_STRENGTH_ADJUSTMENT : static constexpr BGFLOATpsr_ : vector<BGFLOAT>AllNeuroEdges()~AllNeuroEdges()setupEdges() : void «override»resetEdge(BGSIZE iEdg, BGFLOAT deltaT) : voidedgSign(const edgeType type) : intprintSynapsesProps() : void {query}serialize(Archive& archive) : voidsetupEdges(int numVertices, int maxEdges) : void «override»readEdge(istream& input, BGSIZE iEdg) : void «override»writeEdge(ostream& output, BGSIZE iEdg) : void {query} «override»AllSTDPSynapsesAneg_E_ : BGFLOATAneg_I_ : BGFLOATApos_E_ : BGFLOATApos_I_ : BGFLOATWex_E_ : BGFLOATWex_I_ : BGFLOATdefaultSTDPgap_ : BGFLOATtauneg_E_ : BGFLOATtauneg_I_ : BGFLOATtaupos_E_ : BGFLOATtaupos_I_ : BGFLOATtauspost_E_ : BGFLOATtauspost_I_ : BGFLOATtauspre_E_ : BGFLOATtauspre_I_ : BGFLOATAneg_ : BGFLOAT*Apos_ : BGFLOAT*STDPgap_ : BGFLOAT*Wex_ : BGFLOAT*muneg_ : BGFLOAT*mupos_ : BGFLOAT*tauneg_ : BGFLOAT*taupos_ : BGFLOAT*tauspost_ : BGFLOAT*tauspre_ : BGFLOAT*delayIndexPost_ : int*delayQueuePostLength_ : int*totalDelayPost_ : int*delayQueuePost_ : uint32_t*AllSTDPSynapses()AllSTDPSynapses(const int numVertices, const int maxEdges)~AllSTDPSynapses()Create() : AllEdges*synapticWeightModification(const BGSIZE iEdg, BGFLOAT edgeWeight, double delta) : BGFLOATallowBackPropagation() : boolisSpikeQueuePost(const BGSIZE iEdg) : booladvanceEdge(const BGSIZE iEdg, AllVertices* neurons) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidallocDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyDeviceToHost(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidinitSpikeQueue(const BGSIZE iEdg) : voidloadParameters() : voidpostSpikeHit(const BGSIZE iEdg) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidstdpLearning(const BGSIZE iEdg, double delta, double epost, double epre, int srcVertex, int destVertex) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllSpikingSynapsesdecay_ : vector<BGFLOAT>tau_ : vector<BGFLOAT>tau_II_ : BGFLOATtau_IE_ : BGFLOATtau_EI_ : BGFLOATtau_EE_ : BGFLOATdelay_II_ : BGFLOATdelay_IE_ : BGFLOATdelay_EI_ : BGFLOATdelay_EE_ : BGFLOATtotalDelay_ : vector<int>delayQueue_ : vector<uint32_t>delayIndex_ : vector<int>delayQueueLength_ : vector<int>AllSpikingSynapses()AllSpikingSynapses(int numVertices, int maxEdges)~AllSpikingSynapses()Create() : AllEdges*setupEdges() : void «override»resetEdge(BGSIZE iEdg, BGFLOAT deltaT) : void «override»loadParameters() : void «override»printParameters() : void {query} «override»createEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : void «override»allowBackPropagation() : boolprintSynapsesProps() : void {query}serialize(Archive& archive) : voidsetupEdges(int numVertices, int maxEdges) : voidinitSpikeQueue(BGSIZE iEdg) : voidupdateDecay(BGSIZE iEdg, BGFLOAT deltaT) : boolreadEdge(istream& input, BGSIZE iEdg) : void «override»writeEdge(ostream& output, BGSIZE iEdg) : void {query} «override»allocEdgeDeviceStruct(void** allEdgesDevice) : void «override»allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void «override»deleteEdgeDeviceStruct(void* allEdgesDevice) : void «override»copyEdgeHostToDevice(void* allEdgesDevice) : void «override»copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void «override»copyEdgeDeviceToHost(void* allEdgesDevice) : void «override»copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void «override»advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void «override»setAdvanceEdgesDeviceParams() : void «override»setEdgeClassID() : void «override»printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} «override»copyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : voidallocDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voiddeleteDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : voidcopyHostToDevice(void* allEdgesDevice, AllSpikingSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcopyDeviceToHost(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : voidadvanceEdge(BGSIZE iEdg, AllVertices& neurons) : void «override»preSpikeHit(BGSIZE iEdg) : voidpostSpikeHit(BGSIZE iEdg) : voidisSpikeQueue(BGSIZE iEdg) : boolchangePSR(BGSIZE iEdg, BGFLOAT deltaT) : voidEdgesFactorycreateFunctions : EdgesFunctionMapedgesInstance_ : shared_ptr<AllEdges>EdgesFactory()~EdgesFactory()invokeCreateFunction(const string& className) : AllEdges*getInstance() : EdgesFactory*createEdges(const string& className) : shared_ptr<AllEdges>registerClass(const string& className, CreateFunction function) : voidenumClassSynapsesclassAllDSSynapsesclassAllDynamicSTDPSynapsesclassAllSTDPSynapsesclassAllSpikingSynapsesundefClassSynapsesAllDSSynapsesDevicePropertiesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDynamicSTDPSynapsesDevicePropertiesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllEdgesDevicePropertiessourceVertexIndex_ : int*destVertexIndex_ : int*W_ : BGFLOAT*type_ : edgeType*inUse_ : unsigned char*edgeCounts_ : BGSIZE*totalEdgeCount_ : BGSIZEmaxEdgesPerVertex_ : BGSIZEcountVertices_ : intAllNeuroEdgesDevicePropertiespsr_ : BGFLOAT*AllSTDPSynapsesDevicePropertiesAneg_ : BGFLOAT*Apos_ : BGFLOAT*STDPgap_ : BGFLOAT*Wex_ : BGFLOAT*muneg_ : BGFLOAT*mupos_ : BGFLOAT*tauneg_ : BGFLOAT*taupos_ : BGFLOAT*tauspost_ : BGFLOAT*tauspre_ : BGFLOAT*useFroemkeDanSTDP_ : bool*delayIndexPost_ : int*delayQueuePostLength_ : int*totalDelayPost_ : int*delayQueuePost_ : uint32_t*AllSpikingSynapsesDevicePropertiesdecay_ : BGFLOAT*tau_ : BGFLOAT*delayIndex_ : int*delayQueueLength_ : int*totalDelay_ : int*delayQueue_ : uint32_t* \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/GraphittiClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/GraphittiClassDiagram.png deleted file mode 100644 index 4241de6a5..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/GraphittiClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/GraphittiClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/GraphittiClassDiagram.svg deleted file mode 100644 index b5957cdba..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/GraphittiClassDiagram.svg +++ /dev/null @@ -1,1343 +0,0 @@ -AllDSSynapsesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDSSynapses()AllDSSynapses(const int numVertices, const int maxEdges)~AllDSSynapses()Create() : AllEdges*allocDeviceStruct(AllDSSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceToHost(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllDSSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllDynamicSTDPSynapsesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDynamicSTDPSynapses()AllDynamicSTDPSynapses(const int numVertices, const int maxEdges)~AllDynamicSTDPSynapses()Create() : AllEdges*allocDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceToHost(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllEdgesW_ : BGFLOAT*summationPoint_ : BGFLOAT**maxEdgesPerVertex_ : BGSIZEtotalEdgeCount_ : BGSIZEedgeCounts_ : BGSIZE*inUse_ : bool*type_ : edgeType*countVertices_ : intdestVertexIndex_ : int*sourceVertexIndex_ : int*edgeLogger_ : log4cplus::LoggerfileLogger_ : log4cplus::LoggerAllEdges()AllEdges(const int numVertices, const int maxEdges)~AllEdges()edgeOrdinalToType(const int typeOrdinal) : edgeTypeaddEdge(BGSIZE& iEdg, edgeType type, const int srcVertex, const int destVertex, const BGFLOAT deltaT) : voidadvanceEdge(const BGSIZE iEdg, AllVertices* vertices) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidadvanceEdges(AllVertices* vertices, EdgeIndexMap* edgeIndexMap) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyDeviceEdgeCountsToHost(void* allEdgesDevice) : voidcopyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voidcreateEdgeIndexMap(shared_ptr<EdgeIndexMap> edgeIndexMap) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voideraseEdge(const int neuronIndex, const BGSIZE iEdg) : voidload(Archive& archive) : voidloadParameters() : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidsave(Archive& archive) : void {query}setAdvanceEdgesDeviceParams() : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllIFNeuronsIinjectRange_ : BGFLOATInoiseRange_ : BGFLOATVinitRange_ : BGFLOATVresetRange_ : BGFLOATVrestingRange_ : BGFLOATVthreshRange_ : BGFLOATstarterVresetRange_ : BGFLOATstarterVthreshRange_ : BGFLOATC1_ : BGFLOAT*C2_ : BGFLOAT*Cm_ : BGFLOAT*I0_ : BGFLOAT*Iinject_ : BGFLOAT*Inoise_ : BGFLOAT*Isyn_ : BGFLOAT*Rm_ : BGFLOAT*Tau_ : BGFLOAT*Trefract_ : BGFLOAT*Vinit_ : BGFLOAT*Vm_ : BGFLOAT*Vreset_ : BGFLOAT*Vrest_ : BGFLOAT*Vthresh_ : BGFLOAT*numStepsInRefractoryPeriod_ : int*AllIFNeurons()~AllIFNeurons()toString(const int index) : string {query}advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidallocDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidallocNeuronDeviceStruct(void** allVerticesDevice) : voidclearNeuronSpikeCounts(void* allVerticesDevice) : voidcopyDeviceToHost(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidcopyHostToDevice(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidcopyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : voidcopyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : voidcopyNeuronDeviceToHost(void* allVerticesDevice) : voidcopyNeuronHostToDevice(void* allVerticesDevice) : voidcreateAllVertices(Layout* layout) : voidcreateNeuron(int neuronIndex, Layout* layout) : voiddeleteDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : voiddeleteNeuronDeviceStruct(void* allVerticesDevice) : voiddeserialize(istream& input) : voidinitNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : voidloadParameters() : voidprintParameters() : void {query}readNeuron(istream& input, int i) : voidserialize(ostream& output) : void {query}setNeuronDefaults(const int index) : voidsetupVertices() : voidwriteNeuron(ostream& output, int i) : void {query}AllIZHNeuronsexcAconst_ : BGFLOATexcBconst_ : BGFLOATexcCconst_ : BGFLOATexcDconst_ : BGFLOATinhAconst_ : BGFLOATinhBconst_ : BGFLOATinhCconst_ : BGFLOATinhDconst_ : BGFLOATAconst_ : BGFLOAT*Bconst_ : BGFLOAT*C3_ : BGFLOAT*Cconst_ : BGFLOAT*Dconst_ : BGFLOAT*u_ : BGFLOAT*DEFAULT_a : static constexpr BGFLOATDEFAULT_b : static constexpr BGFLOATDEFAULT_c : static constexpr BGFLOATDEFAULT_d : static constexpr BGFLOATAllIZHNeurons()~AllIZHNeurons()Create() : AllVertices*toString(const int index) : string {query}advanceNeuron(const int index) : voidadvanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidallocDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidallocNeuronDeviceStruct(void** allVerticesDevice) : voidclearNeuronSpikeCounts(void* allVerticesDevice) : voidcopyDeviceToHost(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidcopyHostToDevice(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidcopyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : voidcopyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : voidcopyNeuronDeviceToHost(void* allVerticesDevice) : voidcopyNeuronHostToDevice(void* allVerticesDevice) : voidcreateAllVertices(Layout* layout) : voidcreateNeuron(int neuronIndex, Layout* layout) : voiddeleteDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voiddeleteNeuronDeviceStruct(void* allVerticesDevice) : voiddeserialize(istream& input) : voidfire(const int index) : voidinitNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : voidprintParameters() : void {query}readNeuron(istream& input, int index) : voidserialize(ostream& output) : void {query}setNeuronDefaults(const int index) : voidsetupVertices() : voidwriteNeuron(ostream& output, int index) : void {query}AllLIFNeuronsAllLIFNeurons()~AllLIFNeurons()Create() : AllVertices*advanceNeuron(const int index) : voidadvanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidfire(const int index) : voidprintParameters() : void {query}AllNeuroEdgespsr_ : BGFLOAT*SYNAPSE_STRENGTH_ADJUSTMENT : static constexpr BGFLOATAllNeuroEdges()~AllNeuroEdges()edgSign(const edgeType type) : intprintSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllSTDPSynapsesAneg_E_ : BGFLOATAneg_I_ : BGFLOATApos_E_ : BGFLOATApos_I_ : BGFLOATWex_E_ : BGFLOATWex_I_ : BGFLOATdefaultSTDPgap_ : BGFLOATtauneg_E_ : BGFLOATtauneg_I_ : BGFLOATtaupos_E_ : BGFLOATtaupos_I_ : BGFLOATtauspost_E_ : BGFLOATtauspost_I_ : BGFLOATtauspre_E_ : BGFLOATtauspre_I_ : BGFLOATAneg_ : BGFLOAT*Apos_ : BGFLOAT*STDPgap_ : BGFLOAT*Wex_ : BGFLOAT*muneg_ : BGFLOAT*mupos_ : BGFLOAT*tauneg_ : BGFLOAT*taupos_ : BGFLOAT*tauspost_ : BGFLOAT*tauspre_ : BGFLOAT*delayIndexPost_ : int*delayQueuePostLength_ : int*totalDelayPost_ : int*delayQueuePost_ : uint32_t*AllSTDPSynapses()AllSTDPSynapses(const int numVertices, const int maxEdges)~AllSTDPSynapses()Create() : AllEdges*synapticWeightModification(const BGSIZE iEdg, BGFLOAT edgeWeight, double delta) : BGFLOATallowBackPropagation() : boolisSpikeQueuePost(const BGSIZE iEdg) : booladvanceEdge(const BGSIZE iEdg, AllVertices* neurons) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidallocDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyDeviceToHost(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidinitSpikeQueue(const BGSIZE iEdg) : voidloadParameters() : voidpostSpikeHit(const BGSIZE iEdg) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidstdpLearning(const BGSIZE iEdg, double delta, double epost, double epre, int srcVertex, int destVertex) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllSpikingNeuronsfAllowBackPropagation_ : boolvertexEvents_ : vector<EventBuffer>hasFired_ : vector<bool>AllSpikingNeurons()~AllSpikingNeurons()getSpikeHistory(int index, int offIndex) : uint64_tadvanceNeuron(const int index) : voidadvanceVertices(AllEdges& synapses, const EdgeIndexMap* edgeIndexMap) : voidclearDeviceSpikeCounts(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : voidclearNeuronSpikeCounts(void* allVerticesDevice) : voidclearSpikeCounts() : voidcopyDeviceSpikeCountsToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : voidcopyDeviceSpikeHistoryToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : voidcopyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : voidcopyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : voidfire(const int index) : voidsetAdvanceVerticesDeviceParams(AllEdges& synapses) : voidsetupVertices() : voidAllSpikingSynapsesdelay_EE_ : BGFLOATdelay_EI_ : BGFLOATdelay_IE_ : BGFLOATdelay_II_ : BGFLOATtau_EE_ : BGFLOATtau_EI_ : BGFLOATtau_IE_ : BGFLOATtau_II_ : BGFLOATdecay_ : BGFLOAT*tau_ : BGFLOAT*delayIndex_ : int*delayQueueLength_ : int*totalDelay_ : int*delayQueue_ : uint32_t*AllSpikingSynapses()AllSpikingSynapses(const int numVertices, const int maxEdges)~AllSpikingSynapses()Create() : AllEdges*allowBackPropagation() : boolisSpikeQueue(const BGSIZE iEdg) : boolupdateDecay(const BGSIZE iEdg, const BGFLOAT deltaT) : booladvanceEdge(const BGSIZE iEdg, AllVertices* neurons) : voidadvanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : voidallocDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidallocEdgeDeviceStruct(void** allEdgesDevice) : voidallocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidchangePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : voidcopyDeviceEdgeCountsToHost(void* allEdgesDevice) : voidcopyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : voidcopyDeviceToHost(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : voidcopyEdgeDeviceToHost(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice) : voidcopyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : voidcopyHostToDevice(void* allEdgesDevice, AllSpikingSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : voidcreateEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : voiddeleteEdgeDeviceStruct(void* allEdgesDevice) : voidinitSpikeQueue(const BGSIZE iEdg) : voidloadParameters() : voidpostSpikeHit(const BGSIZE iEdg) : voidpreSpikeHit(const BGSIZE iEdg) : voidprintGPUEdgesProps(void* allEdgesDeviceProps) : void {query}printParameters() : void {query}printSynapsesProps() : void {query}readEdge(istream& input, const BGSIZE iEdg) : voidresetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : voidsetAdvanceEdgesDeviceParams() : voidsetEdgeClassID() : voidsetupEdges() : voidsetupEdges(const int numVertices, const int maxEdges) : voidwriteEdge(ostream& output, const BGSIZE iEdg) : void {query}AllVerticessummationPoints_ : BGFLOAT*size_ : intfileLogger_ : log4cplus::LoggervertexLogger_ : log4cplus::LoggerAllVertices()~AllVertices()toString(const int i) : string {query}advanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidadvanceVertices(AllEdges& edges, const EdgeIndexMap* edgeIndexMap) : voidallocNeuronDeviceStruct(void** allVerticesDevice) : voidcopyNeuronDeviceToHost(void* allVerticesDevice) : voidcopyNeuronHostToDevice(void* allVerticesDevice) : voidcreateAllVertices(Layout* layout) : voiddeleteNeuronDeviceStruct(void* allVerticesDevice) : voidloadParameters() : voidprintParameters() : void {query}setAdvanceVerticesDeviceParams(AllEdges& edges) : voidsetupVertices() : voidCPUModelCPUModel()~CPUModel()advance() : voidcopyCPUtoGPU() : voidcopyGPUtoCPU() : voidfinish() : voidupdateConnections() : voidConnGrowthW_ : CompleteMatrix*area_ : CompleteMatrix*delta_ : CompleteMatrix*growthParams_ : GrowthParamsdeltaR_ : VectorMatrix*outgrowth_ : VectorMatrix*radii_ : VectorMatrix*rates_ : VectorMatrix*radiiSize_ : intspikeCounts_ : int*ConnGrowth()~ConnGrowth()Create() : Connections*updateConnections(AllVertices& neurons, Layout* layout) : boolload(Archive& archive) : voidloadParameters() : voidprintParameters() : void {query}printRadii() : void {query}save(Archive& archive) : void {query}setupConnections(Layout* layout, AllVertices* neurons, AllEdges* synapses) : voidupdateConns(AllVertices& neurons) : voidupdateFrontiers(const int numVertices, Layout* layout) : voidupdateOverlap(BGFLOAT numVertices, Layout* layout) : voidupdateSynapsesWeights(const int numVertices, AllVertices& neurons, AllEdges& synapses, AllSpikingNeuronsDeviceProperties* allVerticesDevice, AllSpikingSynapsesDeviceProperties* allEdgesDevice, Layout* layout) : voidupdateSynapsesWeights(const int numVertices, AllVertices& vertices, AllEdges& synapses, Layout* layout) : voidConnStaticexcWeight_ : BGFLOATinhWeight_ : BGFLOATrewiringProbability_ : BGFLOATthreshConnsRadius_ : BGFLOATWCurrentEpoch_ : BGFLOAT*connsPerVertex_ : intradiiSize_ : intdestVertexIndexCurrentEpoch_ : int*sourceVertexIndexCurrentEpoch_ : int*ConnStatic()~ConnStatic()getConnsRadiusThresh() : BGFLOAT {query}getWCurrentEpoch() : BGFLOAT* {query}Create() : Connections*getDestVertexIndexCurrentEpoch() : int* {query}getSourceVertexIndexCurrentEpoch() : int* {query}load(Archive& archive) : voidloadParameters() : voidprintParameters() : void {query}save(Archive& archive) : void {query}setupConnections(Layout* layout, AllVertices* vertices, AllEdges* edges) : voidConnectionsedgeLogger_ : log4cplus::LoggerfileLogger_ : log4cplus::Loggeredges_ : shared_ptr<AllEdges>synapseIndexMap_ : shared_ptr<EdgeIndexMap>Connections()~Connections()updateConnections(AllVertices& vertices, Layout* layout) : boolgetEdges() : shared_ptr<AllEdges> {query}getEdgeIndexMap() : shared_ptr<EdgeIndexMap> {query}createEdgeIndexMap() : voidcreateSynapsesFromWeights(const int numVertices, Layout* layout, AllVertices& vertices, AllEdges& synapses) : voidloadParameters() : voidprintParameters() : void {query}setupConnections(Layout* layout, AllVertices* vertices, AllEdges* synapses) : voidupdateSynapsesWeights(const int numVertices, AllVertices& vertices, AllEdges& synapses, AllSpikingNeuronsDeviceProperties* allVerticesDevice, AllSpikingSynapsesDeviceProperties* allEdgesDevice, Layout* layout) : voidupdateSynapsesWeights(const int numVertices, AllVertices& vertices, AllEdges& synapses, Layout* layout) : voidConnectionsFactorycreateFunctions : ConnectionsFunctionMapconnectionsInstance : shared_ptr<Connections>ConnectionsFactory()~ConnectionsFactory()invokeCreateFunction(const string& className) : Connections*getInstance() : ConnectionsFactory*createConnections(const string& className) : shared_ptr<Connections>registerClass(const string& className, CreateFunction function) : voidDynamicLayoutfractionEndogenouslyActive_ : BGFLOATfractionExcitatory_ : BGFLOATDynamicLayout()~DynamicLayout()Create() : Layout*edgType(const int srcVertex, const int destVertex) : edgeTypegenerateVertexTypeMap(int numVertices) : voidinitStarterMap(const int numVertices) : voidloadParameters() : voidprintParameters() : void {query}EdgesFactorycreateFunctions : EdgesFunctionMapedgesInstance_ : shared_ptr<AllEdges>EdgesFactory()~EdgesFactory()invokeCreateFunction(const string& className) : AllEdges*getInstance() : EdgesFactory*createEdges(const string& className) : shared_ptr<AllEdges>registerClass(const string& className, CreateFunction function) : voidEventBufferepochStart_ : intnumElementsInEpoch_ : intbufferEnd_ : intbufferFront_ : intdataSeries_ : vector<uint64_t>EventBuffer(int maxEvents)getNumEventsInEpoch() : int {query}getPastEvent(int offset) : uint64_t {query}operator[](int i) : uint64_t {query}clear() : voidinsertEvent(uint64_t timeStep) : voidresize(int maxEvents) : voidstartNewEpoch() : voidFixedLayoutFixedLayout()~FixedLayout()Create() : Layout*edgType(const int srcVertex, const int destVertex) : edgeTypegenerateVertexTypeMap(int numVertices) : voidinitStarterMap(const int numVertices) : voidloadParameters() : voidprintParameters() : void {query}GPUModelallVerticesDevice_ : AllSpikingNeuronsDeviceProperties*allEdgesDevice_ : AllSpikingSynapsesDeviceProperties*synapseIndexMapDevice_ : EdgeIndexMap*randNoise_d : float*GPUModel()~GPUModel()addEdge(AllEdges& synapses, edgeType type, const int srcVertex, const int destVertex, Coordinate& source, Coordinate& dest, BGFLOAT deltaT) : voidadvance() : voidallocDeviceStruct(voidallVerticesDevice, voidallEdgesDevice) : voidallocSynapseImap(int count) : voidcalcSummationMap() : voidcopyCPUtoGPU() : voidcopyGPUtoCPU() : voidcopySynapseIndexMapHostToDevice(EdgeIndexMap& synapseIndexMapHost, int numVertices) : voidcreateEdge(AllEdges& synapses, const int neuronIndex, const int synapseIndex, Coordinate source, Coordinate dest, BGFLOAT* sp, BGFLOAT deltaT, edgeType type) : voiddeleteDeviceStruct(voidallVerticesDevice, voidallEdgesDevice) : voiddeleteSynapseImap() : voideraseEdge(AllEdges& synapses, const int neuronIndex, const int synapseIndex) : voidfinish() : voidprintGPUSynapsesPropsModel() : void {query}setupSim() : voidupdateConnections() : voidupdateHistory() : voidGenericFunctionNodeGenericFunctionNode(const Operations::op& operationType, const std::function<void ( )>& function)function<void()~GenericFunctionNode()invokeFunction(const Operations::op& operation) : bool {query}Hdf5GrowthRecorderradiiHistory_ : BGFLOAT*ratesHistory_ : BGFLOAT*dataSetRadiiHist_ : DataSetdataSetRatesHist_ : DataSetHdf5GrowthRecorder()~Hdf5GrowthRecorder()Create() : IRecorder*compileHistories(AllVertices& neurons) : voidgetValues() : voidinitDataSet() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidterm() : voidwriteRadiiRates() : voidHdf5RecorderdataSetNeuronThresh_ : DataSet*dataSetNeuronTypes_ : DataSet*dataSetProbedNeurons_ : DataSet*dataSetSimulationEndTime_ : DataSet*dataSetSpikesHist_ : DataSet*dataSetSpikesProbedNeurons_ : DataSet*dataSetStarterNeurons_ : DataSet*dataSetTsim_ : DataSet*dataSetXloc_ : DataSet*dataSetYloc_ : DataSet*resultOut_ : H5File*offsetSpikesProbedNeurons_ : hsize_t*spikesHistory_ : int*spikesProbedNeurons_ : vector<uint64_t>*Hdf5Recorder()Create() : IRecorder*compileHistories(AllVertices& neurons) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinit() : voidinitDataSet() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& neurons) : voidterm() : voidIFunctionNodeoperationType_ : Operations::op~IFunctionNode()invokeFunction(const Operations::op& operation) : bool {query}IRecorderfileLogger_ : log4cplus::LoggerresultFileName_ : string~IRecorder()compileHistories(AllVertices& vertices) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinit() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& vertices) : voidterm() : voidLayoutnumCallerVertices_ : BGSIZEnumEndogenouslyActiveNeurons_ : BGSIZEdist2_ : CompleteMatrix*dist_ : CompleteMatrix*xloc_ : VectorMatrix*yloc_ : VectorMatrix*gridLayout_ : boolstarterMap_ : bool*fileLogger_ : log4cplus::Loggervertices_ : shared_ptr<AllVertices>callerVertexList_ : vector<int>endogenouslyActiveNeuronList_ : vector<int>inhibitoryNeuronLayout_ : vector<int>probedNeuronList_ : vector<int>psapVertexList_ : vector<int>responderVertexList_ : vector<int>vertexTypeMap_ : vertexType*Layout()~Layout()edgType(const int srcVertex, const int destVertex) : edgeTypegetVertices() : shared_ptr<AllVertices> {query}generateVertexTypeMap(int numVertices) : voidinitStarterMap(const int numVertices) : voidinitVerticesLocs() : voidloadParameters() : voidprintParameters() : void {query}setupLayout() : voidLayoutFactorycreateFunctions : LayoutFunctionMaplayoutInstance : shared_ptr<Layout>LayoutFactory()~LayoutFactory()invokeCreateFunction(const string& className) : Layout*getInstance() : LayoutFactory*createLayout(const string& className) : shared_ptr<Layout>registerClass(const string& className, CreateFunction function) : voidModelfileLogger_ : log4cplus::Loggerconnections_ : shared_ptr<Connections>recorder_ : shared_ptr<IRecorder>layout_ : shared_ptr<Layout>Model()~Model()getConnections() : shared_ptr<Connections> {query}getRecorder() : shared_ptr<IRecorder> {query}getLayout() : shared_ptr<Layout> {query}advance() : voidcopyCPUtoGPU() : voidcopyGPUtoCPU() : voidcreateAllVertices() : voidfinish() : voidlogSimStep() : void {query}saveResults() : voidsetupSim() : voidupdateConnections() : voidupdateHistory() : voidOperationManagerfunctionList_ : list<unique_ptr<IFunctionNode>>logger_ : log4cplus::LoggerOperationManager()~OperationManager()getInstance() : OperationManager&operationToString(const Operations::op& operation) : string {query}executeOperation(const Operations::op& operation) : void {query}registerOperation(const Operations::op& operation, const function<void ( )>& function) : voidOperationsRecorderFactorycreateFunctions : RecorderFunctionMaprecorderInstance : shared_ptr<IRecorder>RecorderFactory()~RecorderFactory()invokeCreateFunction(const string& className) : IRecorder*getInstance() : RecorderFactory*createRecorder(const string& className) : shared_ptr<IRecorder>registerClass(const string& className, CreateFunction function) : voidSimulatordeltaT_ : BGFLOATepochDuration_ : BGFLOATmaxRate_ : BGFLOATpSummationMap_ : BGFLOAT*short_timer : Timertimer : TimerrgEndogenouslyActiveNeuronMap_ : bool*currentEpoch_ : intheight_ : intmaxEdgesPerVertex_ : intmaxFiringRate_ : intnumEpochs_ : inttotalNeurons_ : intwidth_ : intconsoleLogger_ : log4cplus::LoggeredgeLogger_ : log4cplus::LoggerfileLogger_ : log4cplus::LoggerinitRngSeed_ : longnoiseRngSeed_ : longmodel_ : shared_ptr<Model>configFileName_ : stringdeserializationFileName_ : stringserializationFileName_ : stringstimulusFileName_ : stringrgNeuronTypeMap_ : vertexType*Simulator()~Simulator()getDeltaT() : BGFLOAT {query}getEpochDuration() : BGFLOAT {query}getMaxRate() : BGFLOAT {query}getPSummationMap() : BGFLOAT* {query}getInstance() : Simulator&getShort_timer() : TimergetTimer() : TimerinstantiateSimulatorObjects() : boolgetRgEndogenouslyActiveNeuronMap() : bool* {query}getCurrentStep() : int {query}getHeight() : int {query}getMaxEdgesPerVertex() : int {query}getMaxFiringRate() : int {query}getNumEpochs() : int {query}getTotalVertices() : int {query}getWidth() : int {query}getInitRngSeed() : long {query}getNoiseRngSeed() : long {query}getModel() : shared_ptr<Model> {query}getConfigFileName() : string {query}getDeserializationFileName() : string {query}getSerializationFileName() : string {query}getStimulusFileName() : string {query}getRgNeuronTypeMap() : vertexType* {query}advanceEpoch(const int& currentEpoch) : void {query}copyCPUSynapseToGPU() : voidcopyGPUSynapseToCPU() : voidfinish() : voidfreeResources() : voidloadParameters() : voidprintParameters() : void {query}reset() : voidsaveResults() : void {query}setConfigFileName(const string& fileName) : voidsetDeserializationFileName(const string& fileName) : voidsetPSummationMap(BGFLOAT* summationPoints) : voidsetSerializationFileName(const string& fileName) : voidsetStimulusFileName(const string& fileName) : voidsetup() : voidsimulate() : voidVerticesFactorycreateFunctions : VerticesFunctionMapverticesInstance : shared_ptr<AllVertices>VerticesFactory()~VerticesFactory()invokeCreateFunction(const string& className) : AllVertices*getInstance() : VerticesFactory*createVertices(const string& className) : shared_ptr<AllVertices>registerClass(const string& className, CreateFunction function) : voidXmlGrowthRecorderradiiHistory_ : CompleteMatrixratesHistory_ : CompleteMatrixXmlGrowthRecorder()~XmlGrowthRecorder()Create() : IRecorder*compileHistories(AllVertices& neurons) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& neurons) : voidXmlRecorderspikesHistory_ : VectorMatrixresultOut_ : ofstreamXmlRecorder()Create() : IRecorder*compileHistories(AllVertices& vertices) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinit() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& vertices) : voidterm() : voidXmlSTDPRecorderweightsHistory_ : vector<vector<BGFLOAT>>destNeuronIndexHistory_ : vector<vector<int>>sourceNeuronIndexHistory_ : vector<vector<int>>XmlSTDPRecorder()~XmlSTDPRecorder()Create() : IRecorder*toXML(string name, vector<vector<BGFLOAT>> MatrixToWrite) : string {query}toXML(string name, vector<vector<int>> MatrixToWrite) : string {query}compileHistories(AllVertices& neurons) : voidgetValues() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& neurons) : voidOperations::opcopyFromGPUcopyToGPUdeallocateGPUMemorydeserializeloadParametersprintParametersrestoreToDefaultserializeenumClassSynapsesclassAllDSSynapsesclassAllDynamicSTDPSynapsesclassAllSTDPSynapsesclassAllSpikingSynapsesundefClassSynapsesAllDSSynapsesDevicePropertiesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllDynamicSTDPSynapsesDevicePropertiesD_ : BGFLOAT*F_ : BGFLOAT*U_ : BGFLOAT*r_ : BGFLOAT*u_ : BGFLOAT*lastSpike_ : uint64_t*AllEdgesDevicePropertiesW_ : BGFLOAT*psr_ : BGFLOAT*maxEdgesPerVertex_ : BGSIZEtotalEdgeCount_ : BGSIZEedgeCounts_ : BGSIZE*inUse_ : bool*type_ : edgeType*countVertices_ : intdestVertexIndex_ : int*sourceVertexIndex_ : int*AllIFNeuronsDevicePropertiesC1_ : BGFLOAT*C2_ : BGFLOAT*Cm_ : BGFLOAT*I0_ : BGFLOAT*Iinject_ : BGFLOAT*Inoise_ : BGFLOAT*Isyn_ : BGFLOAT*Rm_ : BGFLOAT*Tau_ : BGFLOAT*Trefract_ : BGFLOAT*Vinit_ : BGFLOAT*Vm_ : BGFLOAT*Vreset_ : BGFLOAT*Vrest_ : BGFLOAT*Vthresh_ : BGFLOAT*numStepsInRefractoryPeriod_ : int*AllIZHNeuronsDevicePropertiesAconst_ : BGFLOAT*Bconst_ : BGFLOAT*C3_ : BGFLOAT*Cconst_ : BGFLOAT*Dconst_ : BGFLOAT*u_ : BGFLOAT*AllSTDPSynapsesDevicePropertiesAneg_ : BGFLOAT*Apos_ : BGFLOAT*STDPgap_ : BGFLOAT*Wex_ : BGFLOAT*muneg_ : BGFLOAT*mupos_ : BGFLOAT*tauneg_ : BGFLOAT*taupos_ : BGFLOAT*tauspost_ : BGFLOAT*tauspre_ : BGFLOAT*useFroemkeDanSTDP_ : bool*delayIndexPost_ : int*delayQueuePostLength_ : int*totalDelayPost_ : int*delayQueuePost_ : uint32_t*AllSpikingNeuronsDevicePropertieshasFired_ : bool*spikeCountOffset_ : int*spikeCount_ : int*spikeHistory_ : uint64_t**AllSpikingSynapsesDevicePropertiesdecay_ : BGFLOAT*tau_ : BGFLOAT*delayIndex_ : int*delayQueueLength_ : int*totalDelay_ : int*delayQueue_ : uint32_t*AllVerticesDevicePropertiessummationPoints_ : BGFLOAT*ConnGrowth::GrowthParamsbeta : BGFLOATepsilon : BGFLOATmaxRate : BGFLOATminRadius : BGFLOATrho : BGFLOATstartRadius : BGFLOATtargetRate : BGFLOATConnStatic::DistDestVertexdist : BGFLOATdestVertex : intoperator<(DistDestVertex other) : bool {query}EdgeIndexMapnumOfEdges_ : BGSIZEnumOfVertices_ : BGSIZEincomingEdgeBegin_ : BGSIZE*incomingEdgeCount_ : BGSIZE*incomingEdgeIndexMap_ : BGSIZE*outgoingEdgeBegin_ : BGSIZE*outgoingEdgeCount_ : BGSIZE*outgoingEdgeIndexMap_ : BGSIZE*EdgeIndexMap()EdgeIndexMap(int vertexCount, int edgeCount)~EdgeIndexMap() \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/GraphittiCoreClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/GraphittiCoreClassDiagram.png deleted file mode 100644 index d8c4ee319..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/GraphittiCoreClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/GraphittiCoreClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/GraphittiCoreClassDiagram.svg deleted file mode 100644 index da1c5bf6f..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/GraphittiCoreClassDiagram.svg +++ /dev/null @@ -1 +0,0 @@ -CPUModelCPUModel()~CPUModel()finish() : void «override»advance() : void «override»updateConnections() : void «override»copyGPUtoCPU() : void «override»copyCPUtoGPU() : void «override»GPUModelrandNoise_d : float*edgeIndexMapDevice_ : EdgeIndexMapDevice*allEdgesDevice_ : AllEdgesDeviceProperties*allVerticesDevice_ : AllVerticesDeviceProperties*GPUModel()~GPUModel()setupSim() : void «override»finish() : void «override»advance() : void «override»updateConnections() : void «override»copyGPUtoCPU() : void «override»copyCPUtoGPU() : void «override»printGPUEdgesPropsModel() : void {query}allocDeviceStruct(void* * allVerticesDevice, void** allEdgesDevice) : voiddeleteDeviceStruct(void* * allVerticesDevice, void** allEdgesDevice) : voidallocEdgeIndexMap(int count) : voiddeleteEdgeIndexMap() : voidcopyEdgeIndexMapHostToDevice(EdgeIndexMap& edgeIndexMapHost, int numVertices) : voidupdateHistory() : voideraseEdge(AllEdges& edges, int vertexIndex, int edgeIndex) : voidaddEdge(AllEdges& edges, edgeType type, int srcVertex, int destVertex, Coordinate& source, Coordinate& dest, BGFLOAT deltaT) : voidcreateEdge(AllEdges& edges, int vertexIndex, int edgeIndex, Coordinate source, Coordinate dest, BGFLOAT deltaT, edgeType type) : voidnormalMTGPU(float *randNoise_d) : voidinitMTGPU(unsigned int seed, unsigned int blocks, unsigned int threads, unsigned int nPerRng, unsigned int mt_rng_count) : voidModelfileLogger_ : log4cplus::Loggerconnections_ : shared_ptr<Connections>recorder_ : shared_ptr<Recorder>layout_ : shared_ptr<Layout>Model()~Model()getConnections() : shared_ptr<Connections> {query}getRecorder() : shared_ptr<Recorder> {query}getLayout() : shared_ptr<Layout> {query}advance() : voidcopyCPUtoGPU() : voidcopyGPUtoCPU() : voidcreateAllVertices() : voidfinish() : voidlogSimStep() : void {query}saveResults() : voidsetupSim() : voidupdateConnections() : voidupdateHistory() : voidSimulatordeltaT_ : BGFLOATepochDuration_ : BGFLOATmaxRate_ : BGFLOATshort_timer : Timertimer : TimerrgEndogenouslyActiveNeuronMap_ : bool*currentEpoch_ : intheight_ : intmaxEdgesPerVertex_ : intmaxFiringRate_ : intnumEpochs_ : inttotalNeurons_ : intwidth_ : intconsoleLogger_ : log4cplus::LoggeredgeLogger_ : log4cplus::LoggerfileLogger_ : log4cplus::LoggerinitRngSeed_ : longnoiseRngSeed_ : longmodel_ : shared_ptr<Model>configFileName_ : stringdeserializationFileName_ : stringserializationFileName_ : stringstimulusFileName_ : stringrgNeuronTypeMap_ : vertexType*Simulator()~Simulator()getDeltaT() : BGFLOAT {query}getEpochDuration() : BGFLOAT {query}getMaxRate() : BGFLOAT {query}getInstance() : Simulator&getShort_timer() : TimergetTimer() : TimerinstantiateSimulatorObjects() : boolgetRgEndogenouslyActiveNeuronMap() : bool* {query}getCurrentStep() : int {query}getHeight() : int {query}getMaxEdgesPerVertex() : int {query}getMaxFiringRate() : int {query}getNumEpochs() : int {query}getTotalVertices() : int {query}getWidth() : int {query}getInitRngSeed() : long {query}getNoiseRngSeed() : long {query}getModel() : shared_ptr<Model> {query}getConfigFileName() : string {query}getDeserializationFileName() : string {query}getSerializationFileName() : string {query}getStimulusFileName() : string {query}getRgNeuronTypeMap() : vertexType* {query}advanceEpoch(const int& currentEpoch) : void {query}copyCPUSynapseToGPU() : voidcopyGPUSynapseToCPU() : voidfinish() : voidfreeResources() : voidloadParameters() : voidprintParameters() : void {query}reset() : voidsaveResults() : void {query}setConfigFileName(const string& fileName) : voidsetDeserializationFileName(const string& fileName) : voidsetSerializationFileName(const string& fileName) : voidsetStimulusFileName(const string& fileName) : voidsetup() : voidsimulate() : voidEdgeIndexMapDeviceoutgoingEdgeIndexMap_ : BGSIZE*outgoingEdgeBegin_ : BGSIZE*outgoingEdgeCount_ : BGSIZE*incomingEdgeIndexMap_ : BGSIZE*incomingEdgeBegin_ : BGSIZE*incomingEdgeCount_ : BGSIZE*AllEdgesDevicePropertiessourceVertexIndex_ : int*destVertexIndex_ : int*W_ : BGFLOAT*type_ : edgeType*inUse_ : unsigned char*edgeCounts_ : BGSIZE*totalEdgeCount_ : BGSIZEmaxEdgesPerVertex_ : BGSIZEcountVertices_ : intAllVerticesDeviceProperties \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/GraphittiDomainDiagram.png b/docs/Developer/ClassDiagrams/diagrams/GraphittiDomainDiagram.png deleted file mode 100644 index 8a01211b9..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/GraphittiDomainDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/GraphittiDomainDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/GraphittiDomainDiagram.svg deleted file mode 100644 index 376f53b4c..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/GraphittiDomainDiagram.svg +++ /dev/null @@ -1,870 +0,0 @@ -AllDSSynapsesAllDynamicSTDPSynapsesAllEdgesAllIFNeuronsAllIZHNeuronsAllLIFNeuronsAllNeuroEdgesAllSTDPSynapsesAllSpikingNeuronsAllSpikingSynapsesAllVerticesCPUModelConnGrowthConnStaticConnectionsConnectionsFactoryDynamicLayoutEdgesFactoryEventBufferFixedLayoutGPUModelGenericFunctionNodeHdf5GrowthRecorderHdf5RecorderIFunctionNodeIRecorderLayoutLayoutFactoryModelOperationManagerOperationsRecorderFactorySimulatorVerticesFactoryXmlGrowthRecorderXmlRecorderXmlSTDPRecorderOperations::openumClassSynapsesAllDSSynapsesDevicePropertiesAllDynamicSTDPSynapsesDevicePropertiesAllEdgesDevicePropertiesAllIFNeuronsDevicePropertiesAllIZHNeuronsDevicePropertiesAllSTDPSynapsesDevicePropertiesAllSpikingNeuronsDevicePropertiesAllSpikingSynapsesDevicePropertiesAllVerticesDevicePropertiesConnGrowth::GrowthParamsConnStatic::DistDestVertexEdgeIndexMap \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/LayoutClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/LayoutClassDiagram.png deleted file mode 100644 index 9180861c4..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/LayoutClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/LayoutClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/LayoutClassDiagram.svg deleted file mode 100644 index e368dc678..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/LayoutClassDiagram.svg +++ /dev/null @@ -1,402 +0,0 @@ -AllIFNeuronsIinjectRange_ : BGFLOATInoiseRange_ : BGFLOATVinitRange_ : BGFLOATVresetRange_ : BGFLOATVrestingRange_ : BGFLOATVthreshRange_ : BGFLOATstarterVresetRange_ : BGFLOATstarterVthreshRange_ : BGFLOATC1_ : BGFLOAT*C2_ : BGFLOAT*Cm_ : BGFLOAT*I0_ : BGFLOAT*Iinject_ : BGFLOAT*Inoise_ : BGFLOAT*Isyn_ : BGFLOAT*Rm_ : BGFLOAT*Tau_ : BGFLOAT*Trefract_ : BGFLOAT*Vinit_ : BGFLOAT*Vm_ : BGFLOAT*Vreset_ : BGFLOAT*Vrest_ : BGFLOAT*Vthresh_ : BGFLOAT*numStepsInRefractoryPeriod_ : int*AllIFNeurons()~AllIFNeurons()toString(const int index) : string {query}advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidallocDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidallocNeuronDeviceStruct(void** allVerticesDevice) : voidclearNeuronSpikeCounts(void* allVerticesDevice) : voidcopyDeviceToHost(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidcopyHostToDevice(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidcopyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : voidcopyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : voidcopyNeuronDeviceToHost(void* allVerticesDevice) : voidcopyNeuronHostToDevice(void* allVerticesDevice) : voidcreateAllVertices(Layout* layout) : voidcreateNeuron(int neuronIndex, Layout* layout) : voiddeleteDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : voiddeleteNeuronDeviceStruct(void* allVerticesDevice) : voiddeserialize(istream& input) : voidinitNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : voidloadParameters() : voidprintParameters() : void {query}readNeuron(istream& input, int i) : voidserialize(ostream& output) : void {query}setNeuronDefaults(const int index) : voidsetupVertices() : voidwriteNeuron(ostream& output, int i) : void {query}AllIZHNeuronsexcAconst_ : BGFLOATexcBconst_ : BGFLOATexcCconst_ : BGFLOATexcDconst_ : BGFLOATinhAconst_ : BGFLOATinhBconst_ : BGFLOATinhCconst_ : BGFLOATinhDconst_ : BGFLOATAconst_ : BGFLOAT*Bconst_ : BGFLOAT*C3_ : BGFLOAT*Cconst_ : BGFLOAT*Dconst_ : BGFLOAT*u_ : BGFLOAT*DEFAULT_a : static constexpr BGFLOATDEFAULT_b : static constexpr BGFLOATDEFAULT_c : static constexpr BGFLOATDEFAULT_d : static constexpr BGFLOATAllIZHNeurons()~AllIZHNeurons()Create() : AllVertices*toString(const int index) : string {query}advanceNeuron(const int index) : voidadvanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidallocDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidallocNeuronDeviceStruct(void** allVerticesDevice) : voidclearNeuronSpikeCounts(void* allVerticesDevice) : voidcopyDeviceToHost(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidcopyHostToDevice(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidcopyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : voidcopyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : voidcopyNeuronDeviceToHost(void* allVerticesDevice) : voidcopyNeuronHostToDevice(void* allVerticesDevice) : voidcreateAllVertices(Layout* layout) : voidcreateNeuron(int neuronIndex, Layout* layout) : voiddeleteDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voiddeleteNeuronDeviceStruct(void* allVerticesDevice) : voiddeserialize(istream& input) : voidfire(const int index) : voidinitNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : voidprintParameters() : void {query}readNeuron(istream& input, int index) : voidserialize(ostream& output) : void {query}setNeuronDefaults(const int index) : voidsetupVertices() : voidwriteNeuron(ostream& output, int index) : void {query}AllLIFNeuronsAllLIFNeurons()~AllLIFNeurons()Create() : AllVertices*advanceNeuron(const int index) : voidadvanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidfire(const int index) : voidprintParameters() : void {query}AllSpikingNeuronsfAllowBackPropagation_ : boolvertexEvents_ : vector<EventBuffer>hasFired_ : vector<bool>AllSpikingNeurons()~AllSpikingNeurons()getSpikeHistory(int index, int offIndex) : uint64_tadvanceNeuron(const int index) : voidadvanceVertices(AllEdges& synapses, const EdgeIndexMap* edgeIndexMap) : voidclearDeviceSpikeCounts(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : voidclearNeuronSpikeCounts(void* allVerticesDevice) : voidclearSpikeCounts() : voidcopyDeviceSpikeCountsToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : voidcopyDeviceSpikeHistoryToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : voidcopyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : voidcopyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : voidfire(const int index) : voidsetAdvanceVerticesDeviceParams(AllEdges& synapses) : voidsetupVertices() : voidAllVerticessummationPoints_ : BGFLOAT*size_ : intfileLogger_ : log4cplus::LoggervertexLogger_ : log4cplus::LoggerAllVertices()~AllVertices()toString(const int i) : string {query}advanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : voidadvanceVertices(AllEdges& edges, const EdgeIndexMap* edgeIndexMap) : voidallocNeuronDeviceStruct(void** allVerticesDevice) : voidcopyNeuronDeviceToHost(void* allVerticesDevice) : voidcopyNeuronHostToDevice(void* allVerticesDevice) : voidcreateAllVertices(Layout* layout) : voiddeleteNeuronDeviceStruct(void* allVerticesDevice) : voidloadParameters() : voidprintParameters() : void {query}setAdvanceVerticesDeviceParams(AllEdges& edges) : voidsetupVertices() : voidDynamicLayoutfractionEndogenouslyActive_ : BGFLOATfractionExcitatory_ : BGFLOATDynamicLayout()~DynamicLayout()Create() : Layout*edgType(const int srcVertex, const int destVertex) : edgeTypegenerateVertexTypeMap(int numVertices) : voidinitStarterMap(const int numVertices) : voidloadParameters() : voidprintParameters() : void {query}EventBufferepochStart_ : intnumElementsInEpoch_ : intbufferEnd_ : intbufferFront_ : intdataSeries_ : vector<uint64_t>EventBuffer(int maxEvents)getNumElementsInEpoch() : int {query}getPastEvent(int offset) : uint64_t {query}operator[](int i) : uint64_t {query}clear() : voidinsertEvent(uint64_t timeStep) : voidresize(int maxEvents) : voidstartNewEpoch() : voidFixedLayoutFixedLayout()~FixedLayout()Create() : Layout*edgType(const int srcVertex, const int destVertex) : edgeTypegenerateVertexTypeMap(int numVertices) : voidinitStarterMap(const int numVertices) : voidloadParameters() : voidprintParameters() : void {query}LayoutnumCallerVertices_ : BGSIZEnumEndogenouslyActiveNeurons_ : BGSIZEdist2_ : CompleteMatrix*dist_ : CompleteMatrix*xloc_ : VectorMatrix*yloc_ : VectorMatrix*gridLayout_ : boolstarterMap_ : bool*fileLogger_ : log4cplus::Loggervertices_ : shared_ptr<AllVertices>callerVertexList_ : vector<int>endogenouslyActiveNeuronList_ : vector<int>inhibitoryNeuronLayout_ : vector<int>probedNeuronList_ : vector<int>psapVertexList_ : vector<int>responderVertexList_ : vector<int>vertexTypeMap_ : vertexType*Layout()~Layout()edgType(const int srcVertex, const int destVertex) : edgeTypegetVertices() : shared_ptr<AllVertices> {query}generateVertexTypeMap(int numVertices) : voidinitStarterMap(const int numVertices) : voidinitVerticesLocs() : voidloadParameters() : voidprintParameters() : void {query}setupLayout() : voidLayoutFactorycreateFunctions : LayoutFunctionMaplayoutInstance : shared_ptr<Layout>LayoutFactory()~LayoutFactory()invokeCreateFunction(const string& className) : Layout*getInstance() : LayoutFactory*createLayout(const string& className) : shared_ptr<Layout>registerClass(const string& className, CreateFunction function) : voidVerticesFactorycreateFunctions : VerticesFunctionMapverticesInstance : shared_ptr<AllVertices>VerticesFactory()~VerticesFactory()invokeCreateFunction(const string& className) : AllVertices*getInstance() : VerticesFactory*createVertices(const string& className) : shared_ptr<AllVertices>registerClass(const string& className, CreateFunction function) : voidAllIFNeuronsDevicePropertiesC1_ : BGFLOAT*C2_ : BGFLOAT*Cm_ : BGFLOAT*I0_ : BGFLOAT*Iinject_ : BGFLOAT*Inoise_ : BGFLOAT*Isyn_ : BGFLOAT*Rm_ : BGFLOAT*Tau_ : BGFLOAT*Trefract_ : BGFLOAT*Vinit_ : BGFLOAT*Vm_ : BGFLOAT*Vreset_ : BGFLOAT*Vrest_ : BGFLOAT*Vthresh_ : BGFLOAT*numStepsInRefractoryPeriod_ : int*AllIZHNeuronsDevicePropertiesAconst_ : BGFLOAT*Bconst_ : BGFLOAT*C3_ : BGFLOAT*Cconst_ : BGFLOAT*Dconst_ : BGFLOAT*u_ : BGFLOAT*AllSpikingNeuronsDevicePropertieshasFired_ : bool*spikeCountOffset_ : int*spikeCount_ : int*spikeHistory_ : uint64_t**AllVerticesDevicePropertiessummationPoints_ : BGFLOAT* \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/OperationManagerClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/OperationManagerClassDiagram.png deleted file mode 100644 index e1369ddd0..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/OperationManagerClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/OperationManagerClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/OperationManagerClassDiagram.svg deleted file mode 100644 index 6f8fc2c3c..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/OperationManagerClassDiagram.svg +++ /dev/null @@ -1,158 +0,0 @@ -GenericFunctionNodeGenericFunctionNode(const Operations::op& operationType, const std::function<void ( )>& function)function<void()~GenericFunctionNode()invokeFunction(const Operations::op& operation) : bool {query}IFunctionNodeoperationType_ : Operations::op~IFunctionNode()invokeFunction(const Operations::op& operation) : bool {query}OperationManagerfunctionList_ : list<unique_ptr<IFunctionNode>>logger_ : log4cplus::LoggerOperationManager()~OperationManager()getInstance() : OperationManager&operationToString(const Operations::op& operation) : string {query}executeOperation(const Operations::op& operation) : void {query}registerOperation(const Operations::op& operation, const function<void ( )>& function) : voidOperationsOperations::opcopyFromGPUcopyToGPUdeallocateGPUMemorydeserializeloadParametersprintParametersrestoreToDefaultserialize \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/RecorderClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/RecorderClassDiagram.png deleted file mode 100644 index 49ca4ec26..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/RecorderClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/RecorderClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/RecorderClassDiagram.svg deleted file mode 100644 index f64d66721..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/RecorderClassDiagram.svg +++ /dev/null @@ -1,366 +0,0 @@ -Hdf5GrowthRecorderradiiHistory_ : BGFLOAT*ratesHistory_ : BGFLOAT*dataSetRadiiHist_ : DataSetdataSetRatesHist_ : DataSetHdf5GrowthRecorder()~Hdf5GrowthRecorder()Create() : IRecorder*compileHistories(AllVertices& neurons) : voidgetValues() : voidinitDataSet() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidterm() : voidwriteRadiiRates() : voidHdf5RecorderdataSetNeuronThresh_ : DataSetdataSetNeuronTypes_ : DataSetdataSetProbedNeurons_ : DataSetdataSetSimulationEndTime_ : DataSetdataSetSpikesHist_ : DataSetdataSetSpikesProbedNeurons_ : DataSetdataSetStarterNeurons_ : DataSetdataSetTsim_ : DataSetdataSetXloc_ : DataSetdataSetYloc_ : DataSetresultOut_ : H5FileoffsetSpikesProbedNeurons_ : hsize_t*spikesHistory_ : int*spikesProbedNeurons_ : vector<uint64_t>*Hdf5Recorder()Create() : IRecorder*compileHistories(AllVertices& neurons) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinit() : voidinitDataSet() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& neurons) : voidterm() : voidIRecorderfileLogger_ : log4cplus::LoggerresultFileName_ : string~IRecorder()compileHistories(AllVertices& vertices) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinit() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& vertices) : voidterm() : voidRecorderFactorycreateFunctions : RecorderFunctionMaprecorderInstance : shared_ptr<IRecorder>RecorderFactory()~RecorderFactory()invokeCreateFunction(const string& className) : IRecorder*getInstance() : RecorderFactory*createRecorder(const string& className) : shared_ptr<IRecorder>registerClass(const string& className, CreateFunction function) : voidXmlGrowthRecorderradiiHistory_ : CompleteMatrixratesHistory_ : CompleteMatrixXmlGrowthRecorder()~XmlGrowthRecorder()Create() : IRecorder*compileHistories(AllVertices& neurons) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& neurons) : voidXmlRecorderspikesHistory_ : VectorMatrixresultOut_ : ofstreamXmlRecorder()Create() : IRecorder*compileHistories(AllVertices& vertices) : voidgetStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : voidgetValues() : voidinit() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& vertices) : voidterm() : voidXmlSTDPRecorderweightsHistory_ : vector<vector<BGFLOAT>>destNeuronIndexHistory_ : vector<vector<int>>sourceNeuronIndexHistory_ : vector<vector<int>>XmlSTDPRecorder()~XmlSTDPRecorder()Create() : IRecorder*toXML(string name, vector<vector<BGFLOAT>> MatrixToWrite) : string {query}toXML(string name, vector<vector<int>> MatrixToWrite) : string {query}compileHistories(AllVertices& neurons) : voidgetValues() : voidinitDefaultValues() : voidinitValues() : voidprintParameters() : voidsaveSimData(const AllVertices& neurons) : void \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/VerticesClassDiagram.png b/docs/Developer/ClassDiagrams/diagrams/VerticesClassDiagram.png deleted file mode 100644 index 50c558af0..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/VerticesClassDiagram.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/VerticesClassDiagram.svg b/docs/Developer/ClassDiagrams/diagrams/VerticesClassDiagram.svg deleted file mode 100644 index 681746e02..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/VerticesClassDiagram.svg +++ /dev/null @@ -1 +0,0 @@ -AllIFNeuronsTrefract_ : vector<BGFLOAT>Vthresh_ : vector<BGFLOAT>Vrest_ : vector<BGFLOAT>Vreset_ : vector<BGFLOAT>Vinit_ : vector<BGFLOAT>Cm_ : vector<BGFLOAT>Rm_ : vector<BGFLOAT>Inoise_ : vector<BGFLOAT>Iinject_ : vector<BGFLOAT>Isyn_ : vector<BGFLOAT>numStepsInRefractoryPeriod_ : vector<int>C1_ : vector<BGFLOAT>C2_ : vector<BGFLOAT>I0_ : vector<BGFLOAT>Vm_ : vector<BGFLOAT>Tau_ : vector<BGFLOAT>IinjectRange_ : BGFLOAT[2]InoiseRange_ : BGFLOAT[2]VthreshRange_ : BGFLOAT[2]VrestingRange_ : BGFLOAT[2]VresetRange_ : BGFLOAT[2]VinitRange_ : BGFLOAT[2]starterVthreshRange_ : BGFLOAT[2]starterVresetRange_ : BGFLOAT[2]AllIFNeurons()~AllIFNeurons()setupVertices() : void «override»loadParameters() : voidprintParameters() : void {query}createAllVertices(Layout& layout) : voidtoString(int index) : string {query}deserialize(istream& input) : voidserialize(ostream& output) : void {query}serialize(Archive& archive) : voidadvanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : voidallocVerticesDeviceStruct(void** allVerticesDevice) : voiddeleteVerticesDeviceStruct(void* allVerticesDevice) : voidclearVertexHistory(void* allVerticesDevice) : void «override»copyFromDevice(void* deviceAddress) : void «override»copyToDevice(void* deviceAddress) : void «override»allocDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : voiddeleteDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidcopyDeviceToHost(AllIFNeuronsDeviceProperties& allVerticesDevice) : voidcreateNeuron(int neuronIndex, Layout& layout) : voidsetNeuronDefaults(int index) : voidinitNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) : voidreadNeuron(istream& input, int i) : voidwriteNeuron(ostream& output, int i) : void {query}AllIZHNeuronsAconst_ : vector<BGFLOAT>Bconst_ : vector<BGFLOAT>Cconst_ : vector<BGFLOAT>Dconst_ : vector<BGFLOAT>u_ : vector<BGFLOAT>C3_ : vector<BGFLOAT>DEFAULT_a : static constexpr BGFLOATDEFAULT_b : static constexpr BGFLOATDEFAULT_c : static constexpr BGFLOATDEFAULT_d : static constexpr BGFLOATexcAconst_ : BGFLOAT[2]inhAconst_ : BGFLOAT[2]excBconst_ : BGFLOAT[2]inhBconst_ : BGFLOAT[2]excCconst_ : BGFLOAT[2]inhCconst_ : BGFLOAT[2]excDconst_ : BGFLOAT[2]inhDconst_ : BGFLOAT[2]AllIZHNeurons()~AllIZHNeurons()Create() : AllVertices*setupVertices() : void «override»printParameters() : void {query} «override»createAllVertices(Layout& layout) : void «override»toString(int index) : string {query} «override»deserialize(istream& input) : void «override»serialize(ostream& output) : void {query} «override»serialize(Archive& archive) : voidadvanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : void «override»allocVerticesDeviceStruct(void** allVerticesDevice) : void «override»deleteVerticesDeviceStruct(void* allVerticesDevice) : void «override»clearVertexHistory(void* allVerticesDevice) : void «override»copyFromDevice(void* deviceAddress) : void «override»copyToDevice(void* deviceAddress) : void «override»allocDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voiddeleteDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidcopyHostToDevice(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidcopyDeviceToHost(AllIZHNeuronsDeviceProperties& allVerticesDevice) : voidadvanceNeuron(int index) : voidfire(int index) : voidcreateNeuron(int neuronIndex, Layout& layout) : voidsetNeuronDefaults(int index) : voidinitNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) : void «override»readNeuron(istream& input, int index) : voidwriteNeuron(ostream& output, int index) : void {query}AllLIFNeuronsAllLIFNeurons()~AllLIFNeurons()Create() : AllVertices*printParameters() : void {query} «override»serialize(Archive& archive) : voidadvanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : void «override»advanceNeuron(int index) : voidfire(int index) : voidAllSpikingNeuronshasFired_ : vector<bool>vertexEvents_ : vector<EventBuffer>summationPoints_ : vector<BGFLOAT>fAllowBackPropagation_ : boolAllSpikingNeurons()~AllSpikingNeurons()setupVertices() : void «override»clearSpikeCounts() : voidregisterHistoryVariables() : void «override»serialize(Archive& archive) : voidsetAdvanceVerticesDeviceParams(AllEdges& synapses) : voidintegrateVertexInputs(void* allVerticesDevice, EdgeIndexMapDevice* edgeIndexMapDevice, void* allEdgesDevice) : voidcopyFromDevice(void* deviceAddress) : void «override»copyToDevice(void* deviceAddress) : void «override»clearDeviceSpikeCounts(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : voidadvanceVertices(AllEdges& synapses, const EdgeIndexMap& edgeIndexMap) : voidintegrateVertexInputs(AllEdges& edges, EdgeIndexMap& edgeIndexMap) : voidgetSpikeHistory(int index, int offIndex) : uint64_tadvanceNeuron(int index) : voidfire(int index) : voidAllVerticessize_ : intfileLogger_ : log4cplus::LoggervertexLogger_ : log4cplus::LoggerAllVertices()~AllVertices()setupVertices() : voidprintParameters() : void {query}loadEpochInputs(uint64_t currentStep, uint64_t endStep) : voidloadParameters() : voidcreateAllVertices(Layout& layout) : voidtoString(int i) : string {query}registerHistoryVariables() : voidserialize(Archive& archive) : voidallocVerticesDeviceStruct(void** allVerticesDevice) : voiddeleteVerticesDeviceStruct(void* allVerticesDevice) : voidclearVertexHistory(void* allVerticesDevice) : voidcopyToDevice(void* allVerticesDevice) : voidcopyFromDevice(void* allVerticesDevice) : voidadvanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : voidsetAdvanceVerticesDeviceParams(AllEdges& edges) : voidintegrateVertexInputs(void* allVerticesDevice, EdgeIndexMapDevice* edgeIndexMapDevice, void* allEdgesDevice) : voidadvanceVertices(AllEdges& edges, const EdgeIndexMap* edgeIndexMap) : voidintegrateVertexInputs(AllEdges& edges, EdgeIndexMap& edgeIndexMap) : voidEventBufferepochStart_ : intnumElementsInEpoch_ : intbufferEnd_ : intbufferFront_ : intdataSeries_ : vector<uint64_t>EventBuffer(int maxEvents)getNumElementsInEpoch() : int {query}getPastEvent(int offset) : uint64_t {query}operator[](int i) : uint64_t {query}clear() : voidinsertEvent(uint64_t timeStep) : voidresize(int maxEvents) : voidstartNewEpoch() : voidVerticesFactorycreateFunctions : VerticesFunctionMapverticesInstance : shared_ptr<AllVertices>VerticesFactory()~VerticesFactory()invokeCreateFunction(const string& className) : AllVertices*getInstance() : VerticesFactory*createVertices(const string& className) : shared_ptr<AllVertices>registerClass(const string& className, CreateFunction function) : voidAll911VerticesbeginTimeHistory_ : vector<vector<uint64_t>>answerTimeHistory_ : vector<vector<uint64_t>>endTimeHistory_ : vector<vector<uint64_t>>wasAbandonedHistory_ : vector<vector<unsigned char>>queueLengthHistory_ : vector<vector<int>>utilizationHistory_ : vector<vector<double>>vertexQueues_ : vector<CircularBuffer<Call>>droppedCalls_ : vector<int>receivedCalls_ : vector<int>busyServers_ : vector<int>numServers_ : vector<int>numTrunks_ : vector<int>redialP_ : BGFLOATavgDrivingSpeed_ : BGFLOATservingCall_ : vector<vector<Call>>answerTime_ : vector<vector<uint64_t>>serverCountdown_ : vector<vector<int>>inputManager_ : InputManager<Call>All911Vertices()~All911Vertices()Create() : AllVertices*setupVertices() : void «override»createAllVertices(Layout& layout) : voidloadParameters() : voidprintParameters() : void {query} «override»toString(int index) : string {query}loadEpochInputs(uint64_t currentStep, uint64_t endStep) : void «override»registerHistoryVariables() : void «override»getQueue(int vIdx) : CircularBuffer<Call>&droppedCalls(int vIdx) : int&receivedCalls(int vIdx) : int&busyServers(int vIdx) : int {query}advanceCALR(BGSIZE vertexIdx, All911Edges& edges911, const EdgeIndexMap& edgeIndexMap) : voidadvancePSAP(BGSIZE vertexIdx, All911Edges& edges911, const EdgeIndexMap& edgeIndexMap) : voidadvanceRESP(BGSIZE vertexIdx, All911Edges& edges911, const EdgeIndexMap& edgeIndexMap) : voidallocVerticesDeviceStruct(void** allVerticesDevice) : voiddeleteVerticesDeviceStruct(void* allVerticesDevice) : voidcopyToDevice(void* allVerticesDevice) : voidcopyFromDevice(void* allVerticesDevice) : voidadvanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : voidsetAdvanceVerticesDeviceParams(AllEdges& edges) : voidclearVertexHistory(void* allVerticesDevice) : voidintegrateVertexInputs(void* allVerticesDevice, EdgeIndexMapDevice* edgeIndexMapDevice, void* allEdgesDevice) : voidadvanceVertices(AllEdges& edges, const EdgeIndexMap& edgeIndexMap) : void «override»integrateVertexInputs(AllEdges& edges, EdgeIndexMap& edgeIndexMap) : void «override»AllIFNeuronsDevicePropertiesTrefract_ : BGFLOAT*Vthresh_ : BGFLOAT*Vrest_ : BGFLOAT*Vreset_ : BGFLOAT*Vinit_ : BGFLOAT*Cm_ : BGFLOAT*Rm_ : BGFLOAT*Inoise_ : BGFLOAT*Iinject_ : BGFLOAT*Isyn_ : BGFLOAT*numStepsInRefractoryPeriod_ : int*C1_ : BGFLOAT*C2_ : BGFLOAT*I0_ : BGFLOAT*Vm_ : BGFLOAT*Tau_ : BGFLOAT*AllIZHNeuronsDevicePropertiesAconst_ : BGFLOAT*Bconst_ : BGFLOAT*Cconst_ : BGFLOAT*Dconst_ : BGFLOAT*u_ : BGFLOAT*C3_ : BGFLOAT*AllSpikingNeuronsDevicePropertieshasFired_ : bool*spikeHistory_ : uint64_t**bufferFront_ : int*bufferEnd_ : int*epochStart_ : int*numElementsInEpoch_ : int*summationPoints_ : BGFLOAT*AllVerticesDeviceProperties \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/diagrams/package UML.png b/docs/Developer/ClassDiagrams/diagrams/package UML.png deleted file mode 100644 index 18c36886a..000000000 Binary files a/docs/Developer/ClassDiagrams/diagrams/package UML.png and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/diagrams/package UML.svg b/docs/Developer/ClassDiagrams/diagrams/package UML.svg deleted file mode 100644 index 834e079bb..000000000 --- a/docs/Developer/ClassDiagrams/diagrams/package UML.svg +++ /dev/null @@ -1,303 +0,0 @@ -CoreLayoutsVerticesRecordersConnectionsEdgesSimulatorCPUSpikingModelModelGPUSpikingModelOperationsOperationManagerParameterManagerFixedLayoutLayoutDynamicLayoutLayoutsFactoryAllSpikingNeuronsAllVerticesAllIFNeuronsAllLiFNeuronsAllZHNeuronsVerticesFactoryXmLRecorderIRecorderHDF5RecorderXmlGrowthRecroderHdf5GrowthRecorderRecordersFactoryConnStaticConnectionsConnGrowthConnectionsFactoryAllNeuroEdgesAllEdgesAllSpikingSynapsesAllSTDPSynapsesAllDSSynapsesAllDynamicsSTDPSynapsesEdgesFactorycommandsinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatesinstantiatescommandscommandscommandscommandscommands \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/edges.puml b/docs/Developer/ClassDiagrams/edges.puml deleted file mode 100644 index 2b0fc1ce4..000000000 --- a/docs/Developer/ClassDiagrams/edges.puml +++ /dev/null @@ -1,426 +0,0 @@ -@startuml EdgesClassDiagram - - - - - -/' Objects '/ - -class AllDSSynapses { - +AllDSSynapses() - +AllDSSynapses(const int numVertices, const int maxEdges) - +~AllDSSynapses() - +{static} Create() : AllEdges* - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* - #allocDeviceStruct(AllDSSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - #copyDeviceToHost(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllDSSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllDynamicSTDPSynapses { - +AllDynamicSTDPSynapses() - +AllDynamicSTDPSynapses(const int numVertices, const int maxEdges) - +~AllDynamicSTDPSynapses() - +{static} Create() : AllEdges* - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* - #allocDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - #copyDeviceToHost(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -abstract class AllEdges { - +AllEdges() - +AllEdges(int numVertices, int maxEdges) - +{abstract} ~AllEdges() - +{abstract} setupEdges() : void - +{abstract} loadParameters() : void - +{abstract} printParameters() : void {query} - +{abstract} addEdge(edgeType type, int srcVertex, int destVertex, BGFLOAT deltaT) : BGSIZE - +{abstract} createEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : void - +{abstract} createEdgeIndexMap(EdgeIndexMap& edgeIndexMap) : void - +serialize(Archive& archive) : void - #{abstract} setupEdges(int numVertices, int maxEdges) : void - #{abstract} readEdge(istream& input, BGSIZE iEdg) : void - #{abstract} writeEdge(ostream& output, BGSIZE iEdg) : void {query} - #edgeOrdinalToType(int typeOrdinal) : edgeType - #fileLogger_ : log4cplus::Logger - #edgeLogger_ : log4cplus::Logger - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice) : void - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} copyEdgeDeviceToHost(void* allEdgesDevice) : void - +{abstract} copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void - +{abstract} advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - +{abstract} setAdvanceEdgesDeviceParams() : void - +{abstract} setEdgeClassID() : void - +{abstract} printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +{abstract} advanceEdges(AllVertices& vertices, EdgeIndexMap& edgeIndexMap) : void - +{abstract} advanceEdge(BGSIZE iEdg, AllVertices& vertices) : void - +{abstract} eraseEdge(int vertexIndex, BGSIZE iEdg) : void - +sourceVertexIndex_ : vector - +destVertexIndex_ : vector - +W_ : vector - +type_ : vector - +inUse_ : vector - +edgeCounts_ : vector - +totalEdgeCount_ : BGSIZE - +maxEdgesPerVertex_ : BGSIZE - +countVertices_ : int -} - - -class All911Edges { - +All911Edges() - +All911Edges(int numVertices, int maxEdges) - +{abstract} ~All911Edges() - +{static} Create() : AllEdges* - +{abstract} setupEdges() : void <> - +{abstract} createEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : void <> - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice) : void - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} copyEdgeDeviceToHost(void* allEdgesDevice) : void - +{abstract} copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void - +{abstract} advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - +{abstract} setAdvanceEdgesDeviceParams() : void - +{abstract} setEdgeClassID() : void - +{abstract} printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +{abstract} advanceEdges(AllVertices& vertices, EdgeIndexMap& edgeIndexMap) : void - +advance911Edge(BGSIZE iEdg, All911Vertices& vertices) : void - +{abstract} advanceEdge(BGSIZE iEdg, AllVertices& vertices) : void <> - +isAvailable_ : unique_ptr - +isRedial_ : unique_ptr - +call_ : vector -} - - -class AllNeuroEdges { - +AllNeuroEdges() - +{abstract} ~AllNeuroEdges() - +{abstract} setupEdges() : void <> - +{abstract} resetEdge(BGSIZE iEdg, BGFLOAT deltaT) : void - +edgSign(const edgeType type) : int - +{abstract} printSynapsesProps() : void {query} - +serialize(Archive& archive) : void - #{abstract} setupEdges(int numVertices, int maxEdges) : void <> - #{abstract} readEdge(istream& input, BGSIZE iEdg) : void <> - #{abstract} writeEdge(ostream& output, BGSIZE iEdg) : void {query} <> - +{static} SYNAPSE_STRENGTH_ADJUSTMENT : static constexpr BGFLOAT - +psr_ : vector -} - - -class AllSTDPSynapses { - +AllSTDPSynapses() - +AllSTDPSynapses(const int numVertices, const int maxEdges) - +~AllSTDPSynapses() - +{static} Create() : AllEdges* - +Aneg_E_ : BGFLOAT - +Aneg_I_ : BGFLOAT - +Apos_E_ : BGFLOAT - +Apos_I_ : BGFLOAT - +Wex_E_ : BGFLOAT - +Wex_I_ : BGFLOAT - +defaultSTDPgap_ : BGFLOAT - #synapticWeightModification(const BGSIZE iEdg, BGFLOAT edgeWeight, double delta) : BGFLOAT - +tauneg_E_ : BGFLOAT - +tauneg_I_ : BGFLOAT - +taupos_E_ : BGFLOAT - +taupos_I_ : BGFLOAT - +tauspost_E_ : BGFLOAT - +tauspost_I_ : BGFLOAT - +tauspre_E_ : BGFLOAT - +tauspre_I_ : BGFLOAT - +Aneg_ : BGFLOAT* - +Apos_ : BGFLOAT* - +STDPgap_ : BGFLOAT* - +Wex_ : BGFLOAT* - +muneg_ : BGFLOAT* - +mupos_ : BGFLOAT* - +tauneg_ : BGFLOAT* - +taupos_ : BGFLOAT* - +tauspost_ : BGFLOAT* - +tauspre_ : BGFLOAT* - +allowBackPropagation() : bool - #isSpikeQueuePost(const BGSIZE iEdg) : bool - +delayIndexPost_ : int* - +delayQueuePostLength_ : int* - +totalDelayPost_ : int* - +delayQueuePost_ : uint32_t* - +advanceEdge(const BGSIZE iEdg, AllVertices* neurons) : void - +advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - #allocDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyDeviceToHost(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - #initSpikeQueue(const BGSIZE iEdg) : void - +loadParameters() : void - +postSpikeHit(const BGSIZE iEdg) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - -stdpLearning(const BGSIZE iEdg, double delta, double epost, double epre, int srcVertex, int destVertex) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllSpikingSynapses { - +AllSpikingSynapses() - +AllSpikingSynapses(int numVertices, int maxEdges) - +{abstract} ~AllSpikingSynapses() - +{static} Create() : AllEdges* - +{abstract} setupEdges() : void <> - +{abstract} resetEdge(BGSIZE iEdg, BGFLOAT deltaT) : void <> - +{abstract} loadParameters() : void <> - +{abstract} printParameters() : void {query} <> - +{abstract} createEdge(BGSIZE iEdg, int srcVertex, int destVertex, BGFLOAT deltaT, edgeType type) : void <> - +{abstract} allowBackPropagation() : bool - +{abstract} printSynapsesProps() : void {query} - +serialize(Archive& archive) : void - #{abstract} setupEdges(int numVertices, int maxEdges) : void - #{abstract} initSpikeQueue(BGSIZE iEdg) : void - #updateDecay(BGSIZE iEdg, BGFLOAT deltaT) : bool - #{abstract} readEdge(istream& input, BGSIZE iEdg) : void <> - #{abstract} writeEdge(ostream& output, BGSIZE iEdg) : void {query} <> - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice) : void <> - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void <> - +{abstract} deleteEdgeDeviceStruct(void* allEdgesDevice) : void <> - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice) : void <> - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void <> - +{abstract} copyEdgeDeviceToHost(void* allEdgesDevice) : void <> - +{abstract} copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void <> - +{abstract} advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void <> - +{abstract} setAdvanceEdgesDeviceParams() : void <> - +{abstract} setEdgeClassID() : void <> - +{abstract} printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} <> - +copyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : void - #allocDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #deleteDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : void - #copyHostToDevice(void* allEdgesDevice, AllSpikingSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - #copyDeviceToHost(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : void - +{abstract} advanceEdge(BGSIZE iEdg, AllVertices& neurons) : void <> - +{abstract} preSpikeHit(BGSIZE iEdg) : void - +{abstract} postSpikeHit(BGSIZE iEdg) : void - #isSpikeQueue(BGSIZE iEdg) : bool - #{abstract} changePSR(BGSIZE iEdg, BGFLOAT deltaT) : void - +decay_ : vector - +tau_ : vector - +tau_II_ : BGFLOAT - +tau_IE_ : BGFLOAT - +tau_EI_ : BGFLOAT - +tau_EE_ : BGFLOAT - +delay_II_ : BGFLOAT - +delay_IE_ : BGFLOAT - +delay_EI_ : BGFLOAT - +delay_EE_ : BGFLOAT - +totalDelay_ : vector - +delayQueue_ : vector - +delayIndex_ : vector - +delayQueueLength_ : vector -} - - -class EdgesFactory { - -EdgesFactory() - +~EdgesFactory() - -invokeCreateFunction(const string& className) : AllEdges* - +{static} getInstance() : EdgesFactory* - -createFunctions : EdgesFunctionMap - +createEdges(const string& className) : shared_ptr - -edgesInstance_ : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -enum enumClassSynapses { - classAllDSSynapses - classAllDynamicSTDPSynapses - classAllSTDPSynapses - classAllSpikingSynapses - undefClassSynapses -} - - -class AllDSSynapsesDeviceProperties { - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* -} - - -class AllDynamicSTDPSynapsesDeviceProperties { - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* -} - - -class AllEdgesDeviceProperties { - +sourceVertexIndex_ : int* - +destVertexIndex_ : int* - +W_ : BGFLOAT* - +type_ : edgeType* - +inUse_ : unsigned char* - +edgeCounts_ : BGSIZE* - +totalEdgeCount_ : BGSIZE - +maxEdgesPerVertex_ : BGSIZE - +countVertices_ : int -} - - -class AllNeuroEdgesDeviceProperties { - +psr_ : BGFLOAT* -} - - -class AllSTDPSynapsesDeviceProperties { - +Aneg_ : BGFLOAT* - +Apos_ : BGFLOAT* - +STDPgap_ : BGFLOAT* - +Wex_ : BGFLOAT* - +muneg_ : BGFLOAT* - +mupos_ : BGFLOAT* - +tauneg_ : BGFLOAT* - +taupos_ : BGFLOAT* - +tauspost_ : BGFLOAT* - +tauspre_ : BGFLOAT* - +useFroemkeDanSTDP_ : bool* - +delayIndexPost_ : int* - +delayQueuePostLength_ : int* - +totalDelayPost_ : int* - +delayQueuePost_ : uint32_t* -} - - -class AllSpikingSynapsesDeviceProperties { - +decay_ : BGFLOAT* - +tau_ : BGFLOAT* - +delayIndex_ : int* - +delayQueueLength_ : int* - +totalDelay_ : int* - +delayQueue_ : uint32_t* -} - - - - - -/' Inheritance relationships '/ - -.AllEdges <|-- .AllNeuroEdges - - -.AllEdgesDeviceProperties <|-- .AllNeuroEdgesDeviceProperties - - -.AllNeuroEdgesDeviceProperties <|-- .AllSpikingSynapsesDeviceProperties - - -.AllNeuroEdges <|-- .AllSpikingSynapses - - -.AllSTDPSynapses <|-- .AllDynamicSTDPSynapses - - -.AllSTDPSynapsesDeviceProperties <|-- .AllDynamicSTDPSynapsesDeviceProperties - - -.AllSpikingSynapses <|-- .AllDSSynapses - - -.AllSpikingSynapses <|-- .AllSTDPSynapses - - -.AllSpikingSynapsesDeviceProperties <|-- .AllDSSynapsesDeviceProperties - - -.AllSpikingSynapsesDeviceProperties <|-- .AllSTDPSynapsesDeviceProperties - - - - - -/' Aggregation relationships '/ - -.EdgesFactory *-- .AllEdges - - - - - - -/' Nested objects '/ - - - -@enduml diff --git a/docs/Developer/ClassDiagrams/graphitti.puml b/docs/Developer/ClassDiagrams/graphitti.puml deleted file mode 100644 index 465d6c59d..000000000 --- a/docs/Developer/ClassDiagrams/graphitti.puml +++ /dev/null @@ -1,1158 +0,0 @@ -@startuml GraphittiClassDiagram - - - - - -/' Objects '/ - -class AllDSSynapses { - +AllDSSynapses() - +AllDSSynapses(const int numVertices, const int maxEdges) - +~AllDSSynapses() - +{static} Create() : AllEdges* - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* - #allocDeviceStruct(AllDSSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - #copyDeviceToHost(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllDSSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllDSSynapsesDeviceProperties& allEdgesDeviceProps) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllDynamicSTDPSynapses { - +AllDynamicSTDPSynapses() - +AllDynamicSTDPSynapses(const int numVertices, const int maxEdges) - +~AllDynamicSTDPSynapses() - +{static} Create() : AllEdges* - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* - #allocDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdges, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - #copyDeviceToHost(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllDynamicSTDPSynapsesDeviceProperties& allEdgesDeviceProps) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -abstract class AllEdges { - +AllEdges() - +AllEdges(const int numVertices, const int maxEdges) - +~AllEdges() - +W_ : BGFLOAT* - +maxEdgesPerVertex_ : BGSIZE - +totalEdgeCount_ : BGSIZE - +edgeCounts_ : BGSIZE* - +inUse_ : bool* - #edgeOrdinalToType(const int typeOrdinal) : edgeType - +type_ : edgeType* - +countVertices_ : int - +destVertexIndex_ : int* - +sourceVertexIndex_ : int* - #edgeLogger_ : log4cplus::Logger - #fileLogger_ : log4cplus::Logger - +addEdge(edgeType type, const int srcVertex, const int destVertex, const BGFLOAT deltaT) : BGSIZE - +{abstract} advanceEdge(const BGSIZE iEdg, AllVertices* vertices) : void - +{abstract} advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - +advanceEdges(AllVertices* vertices, EdgeIndexMap* edgeIndexMap) : void - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice) : void - +{abstract} allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void - +{abstract} copyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : void - +{abstract} copyEdgeDeviceToHost(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice) : void - +{abstract} copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +{abstract} createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - +createEdgeIndexMap(shared_ptr edgeIndexMap) : void - +{abstract} deleteEdgeDeviceStruct(void* allEdgesDevice) : void - +eraseEdge(const int neuronIndex, const BGSIZE iEdg) : void - +load(Archive& archive) : void - +loadParameters() : void - +{abstract} printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +save(Archive& archive) : void {query} - +{abstract} setAdvanceEdgesDeviceParams() : void - +{abstract} setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllIFNeurons { - +AllIFNeurons() - +~AllIFNeurons() - -IinjectRange_ : BGFLOAT - -InoiseRange_ : BGFLOAT - -VinitRange_ : BGFLOAT - -VresetRange_ : BGFLOAT - -VrestingRange_ : BGFLOAT - -VthreshRange_ : BGFLOAT - -starterVresetRange_ : BGFLOAT - -starterVthreshRange_ : BGFLOAT - +C1_ : BGFLOAT* - +C2_ : BGFLOAT* - +Cm_ : BGFLOAT* - +I0_ : BGFLOAT* - +Iinject_ : BGFLOAT* - +Inoise_ : BGFLOAT* - +Isyn_ : BGFLOAT* - +Rm_ : BGFLOAT* - +Tau_ : BGFLOAT* - +Trefract_ : BGFLOAT* - +Vinit_ : BGFLOAT* - +Vm_ : BGFLOAT* - +Vreset_ : BGFLOAT* - +Vrest_ : BGFLOAT* - +Vthresh_ : BGFLOAT* - +numStepsInRefractoryPeriod_ : int* - +toString(const int index) : string {query} - +advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - #allocDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - +allocNeuronDeviceStruct(void** allVerticesDevice) : void - +clearNeuronSpikeCounts(void* allVerticesDevice) : void - #copyDeviceToHost(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - #copyHostToDevice(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - +copyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : void - +copyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : void - +copyNeuronDeviceToHost(void* allVerticesDevice) : void - +copyNeuronHostToDevice(void* allVerticesDevice) : void - +createAllVertices(Layout* layout) : void - #createNeuron(int neuronIndex, Layout* layout) : void - #deleteDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - +deleteNeuronDeviceStruct(void* allVerticesDevice) : void - +deserialize(istream& input) : void - #initNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : void - +loadParameters() : void - +printParameters() : void {query} - #readNeuron(istream& input, int i) : void - +serialize(ostream& output) : void {query} - #setNeuronDefaults(const int index) : void - +setupVertices() : void - #writeNeuron(ostream& output, int i) : void {query} -} - - -class AllIZHNeurons { - +AllIZHNeurons() - +~AllIZHNeurons() - +{static} Create() : AllVertices* - -excAconst_ : BGFLOAT - -excBconst_ : BGFLOAT - -excCconst_ : BGFLOAT - -excDconst_ : BGFLOAT - -inhAconst_ : BGFLOAT - -inhBconst_ : BGFLOAT - -inhCconst_ : BGFLOAT - -inhDconst_ : BGFLOAT - +Aconst_ : BGFLOAT* - +Bconst_ : BGFLOAT* - +C3_ : BGFLOAT* - +Cconst_ : BGFLOAT* - +Dconst_ : BGFLOAT* - +u_ : BGFLOAT* - -{static} DEFAULT_a : static constexpr BGFLOAT - -{static} DEFAULT_b : static constexpr BGFLOAT - -{static} DEFAULT_c : static constexpr BGFLOAT - -{static} DEFAULT_d : static constexpr BGFLOAT - +toString(const int index) : string {query} - #advanceNeuron(const int index) : void - +advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - #allocDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - +allocNeuronDeviceStruct(void** allVerticesDevice) : void - +clearNeuronSpikeCounts(void* allVerticesDevice) : void - #copyDeviceToHost(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - #copyHostToDevice(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - +copyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : void - +copyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : void - +copyNeuronDeviceToHost(void* allVerticesDevice) : void - +copyNeuronHostToDevice(void* allVerticesDevice) : void - +createAllVertices(Layout* layout) : void - #createNeuron(int neuronIndex, Layout* layout) : void - #deleteDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - +deleteNeuronDeviceStruct(void* allVerticesDevice) : void - +deserialize(istream& input) : void - #fire(const int index) : void - #initNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : void - +printParameters() : void {query} - #readNeuron(istream& input, int index) : void - +serialize(ostream& output) : void {query} - #setNeuronDefaults(const int index) : void - +setupVertices() : void - #writeNeuron(ostream& output, int index) : void {query} -} - - -class AllLIFNeurons { - +AllLIFNeurons() - +~AllLIFNeurons() - +{static} Create() : AllVertices* - #advanceNeuron(const int index) : void - +advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - #fire(const int index) : void - +printParameters() : void {query} -} - - -class AllNeuroEdges { - +AllNeuroEdges() - +~AllNeuroEdges() - +psr_ : BGFLOAT* - +edgSign(const edgeType type) : int - +{static} SYNAPSE_STRENGTH_ADJUSTMENT : static constexpr BGFLOAT - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -class AllSTDPSynapses { - +AllSTDPSynapses() - +AllSTDPSynapses(const int numVertices, const int maxEdges) - +~AllSTDPSynapses() - +{static} Create() : AllEdges* - +Aneg_E_ : BGFLOAT - +Aneg_I_ : BGFLOAT - +Apos_E_ : BGFLOAT - +Apos_I_ : BGFLOAT - +Wex_E_ : BGFLOAT - +Wex_I_ : BGFLOAT - +defaultSTDPgap_ : BGFLOAT - #synapticWeightModification(const BGSIZE iEdg, BGFLOAT edgeWeight, double delta) : BGFLOAT - +tauneg_E_ : BGFLOAT - +tauneg_I_ : BGFLOAT - +taupos_E_ : BGFLOAT - +taupos_I_ : BGFLOAT - +tauspost_E_ : BGFLOAT - +tauspost_I_ : BGFLOAT - +tauspre_E_ : BGFLOAT - +tauspre_I_ : BGFLOAT - +Aneg_ : BGFLOAT* - +Apos_ : BGFLOAT* - +STDPgap_ : BGFLOAT* - +Wex_ : BGFLOAT* - +muneg_ : BGFLOAT* - +mupos_ : BGFLOAT* - +tauneg_ : BGFLOAT* - +taupos_ : BGFLOAT* - +tauspost_ : BGFLOAT* - +tauspre_ : BGFLOAT* - +allowBackPropagation() : bool - #isSpikeQueuePost(const BGSIZE iEdg) : bool - +delayIndexPost_ : int* - +delayQueuePostLength_ : int* - +totalDelayPost_ : int* - +delayQueuePost_ : uint32_t* - +advanceEdge(const BGSIZE iEdg, AllVertices* neurons) : void - +advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - #allocDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyDeviceToHost(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllSTDPSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllSTDPSynapsesDeviceProperties& allEdgesDevice) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - #initSpikeQueue(const BGSIZE iEdg) : void - +loadParameters() : void - +postSpikeHit(const BGSIZE iEdg) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - -stdpLearning(const BGSIZE iEdg, double delta, double epost, double epre, int srcVertex, int destVertex) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -abstract class AllSpikingNeurons { - +AllSpikingNeurons() - +~AllSpikingNeurons() - #fAllowBackPropagation_ : bool - +getSpikeHistory(int index, int offIndex) : uint64_t - +vertexEvents_ : vector - +hasFired_ : vector - #{abstract} advanceNeuron(const int index) : void - +advanceVertices(AllEdges& synapses, const EdgeIndexMap* edgeIndexMap) : void - #clearDeviceSpikeCounts(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : void - +{abstract} clearNeuronSpikeCounts(void* allVerticesDevice) : void - +clearSpikeCounts() : void - #copyDeviceSpikeCountsToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : void - #copyDeviceSpikeHistoryToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : void - +{abstract} copyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : void - +{abstract} copyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : void - #fire(const int index) : void - +setAdvanceVerticesDeviceParams(AllEdges& synapses) : void - +setupVertices() : void -} - - -class AllSpikingSynapses { - +AllSpikingSynapses() - +AllSpikingSynapses(const int numVertices, const int maxEdges) - +~AllSpikingSynapses() - +{static} Create() : AllEdges* - +delay_EE_ : BGFLOAT - +delay_EI_ : BGFLOAT - +delay_IE_ : BGFLOAT - +delay_II_ : BGFLOAT - +tau_EE_ : BGFLOAT - +tau_EI_ : BGFLOAT - +tau_IE_ : BGFLOAT - +tau_II_ : BGFLOAT - +decay_ : BGFLOAT* - +tau_ : BGFLOAT* - +allowBackPropagation() : bool - #isSpikeQueue(const BGSIZE iEdg) : bool - #updateDecay(const BGSIZE iEdg, const BGFLOAT deltaT) : bool - +delayIndex_ : int* - +delayQueueLength_ : int* - +totalDelay_ : int* - +delayQueue_ : uint32_t* - +advanceEdge(const BGSIZE iEdg, AllVertices* neurons) : void - +advanceEdges(void* allEdgesDevice, void* allVerticesDevice, void* edgeIndexMapDevice) : void - #allocDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - +allocEdgeDeviceStruct(void** allEdgesDevice) : void - +allocEdgeDeviceStruct(void** allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #changePSR(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +copyDeviceEdgeCountsToHost(void* allEdgesDevice) : void - +copyDeviceEdgeSumIdxToHost(void* allEdgesDevice) : void - #copyDeviceToHost(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : void - +copyEdgeDeviceToHost(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice) : void - +copyEdgeHostToDevice(void* allEdgesDevice, int numVertices, int maxEdgesPerVertex) : void - #copyHostToDevice(void* allEdgesDevice, AllSpikingSynapsesDeviceProperties& allEdgesDeviceProps, int numVertices, int maxEdgesPerVertex) : void - +createEdge(const BGSIZE iEdg, int srcVertex, int destVertex, const BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(AllSpikingSynapsesDeviceProperties& allEdgesDevice) : void - +deleteEdgeDeviceStruct(void* allEdgesDevice) : void - #initSpikeQueue(const BGSIZE iEdg) : void - +loadParameters() : void - +postSpikeHit(const BGSIZE iEdg) : void - +preSpikeHit(const BGSIZE iEdg) : void - +printGPUEdgesProps(void* allEdgesDeviceProps) : void {query} - +printParameters() : void {query} - +printSynapsesProps() : void {query} - #readEdge(istream& input, const BGSIZE iEdg) : void - +resetEdge(const BGSIZE iEdg, const BGFLOAT deltaT) : void - +setAdvanceEdgesDeviceParams() : void - +setEdgeClassID() : void - +setupEdges() : void - #setupEdges(const int numVertices, const int maxEdges) : void - #writeEdge(ostream& output, const BGSIZE iEdg) : void {query} -} - - -abstract class AllVertices { - +AllVertices() - +~AllVertices() - +summationPoints_ : BGFLOAT* - #size_ : int - #fileLogger_ : log4cplus::Logger - #vertexLogger_ : log4cplus::Logger - +{abstract} toString(const int i) : string {query} - +{abstract} advanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - +{abstract} advanceVertices(AllEdges& edges, const EdgeIndexMap* edgeIndexMap) : void - +{abstract} allocNeuronDeviceStruct(void** allVerticesDevice) : void - +{abstract} copyNeuronDeviceToHost(void* allVerticesDevice) : void - +{abstract} copyNeuronHostToDevice(void* allVerticesDevice) : void - +{abstract} createAllVertices(Layout* layout) : void - +{abstract} deleteNeuronDeviceStruct(void* allVerticesDevice) : void - +{abstract} loadParameters() : void - +printParameters() : void {query} - +{abstract} setAdvanceVerticesDeviceParams(AllEdges& edges) : void - +setupVertices() : void -} - - -class CPUModel { - +CPUModel() - +~CPUModel() - +advance() : void - +copyCPUtoGPU() : void - +copyGPUtoCPU() : void - +finish() : void - +updateConnections() : void -} - - -class ConnGrowth { - +ConnGrowth() - +~ConnGrowth() - +W_ : CompleteMatrix* - +area_ : CompleteMatrix* - +delta_ : CompleteMatrix* - +{static} Create() : Connections* - +growthParams_ : GrowthParams - +deltaR_ : VectorMatrix* - +outgrowth_ : VectorMatrix* - +radii_ : VectorMatrix* - +rates_ : VectorMatrix* - +updateConnections(AllVertices& neurons, Layout* layout) : bool - +radiiSize_ : int - +spikeCounts_ : int* - +load(Archive& archive) : void - +loadParameters() : void - +printParameters() : void {query} - +printRadii() : void {query} - +save(Archive& archive) : void {query} - +setupConnections(Layout* layout, AllVertices* neurons, AllEdges* synapses) : void - -updateConns(AllVertices& neurons) : void - -updateFrontiers(const int numVertices, Layout* layout) : void - -updateOverlap(BGFLOAT numVertices, Layout* layout) : void - +updateSynapsesWeights(const int numVertices, AllVertices& neurons, AllEdges& synapses, AllSpikingNeuronsDeviceProperties* allVerticesDevice, AllSpikingSynapsesDeviceProperties* allEdgesDevice, Layout* layout) : void - +updateSynapsesWeights(const int numVertices, AllVertices& vertices, AllEdges& synapses, Layout* layout) : void -} - - -class ConnStatic { - +ConnStatic() - +~ConnStatic() - -excWeight_ : BGFLOAT - +getConnsRadiusThresh() : BGFLOAT {query} - -inhWeight_ : BGFLOAT - -rewiringProbability_ : BGFLOAT - -threshConnsRadius_ : BGFLOAT - -WCurrentEpoch_ : BGFLOAT* - +getWCurrentEpoch() : BGFLOAT* {query} - +{static} Create() : Connections* - -connsPerVertex_ : int - -radiiSize_ : int - -destVertexIndexCurrentEpoch_ : int* - +getDestVertexIndexCurrentEpoch() : int* {query} - +getSourceVertexIndexCurrentEpoch() : int* {query} - -sourceVertexIndexCurrentEpoch_ : int* - +load(Archive& archive) : void - +loadParameters() : void - +printParameters() : void {query} - +save(Archive& archive) : void {query} - +setupConnections(Layout* layout, AllVertices* vertices, AllEdges* edges) : void -} - - -abstract class Connections { - +Connections() - +~Connections() - +updateConnections(AllVertices& vertices, Layout* layout) : bool - #edgeLogger_ : log4cplus::Logger - #fileLogger_ : log4cplus::Logger - #edges_ : shared_ptr - +getEdges() : shared_ptr {query} - +getEdgeIndexMap() : shared_ptr {query} - #synapseIndexMap_ : shared_ptr - +createEdgeIndexMap() : void - +createSynapsesFromWeights(const int numVertices, Layout* layout, AllVertices& vertices, AllEdges& synapses) : void - +{abstract} loadParameters() : void - +{abstract} printParameters() : void {query} - +{abstract} setupConnections(Layout* layout, AllVertices* vertices, AllEdges* synapses) : void - +updateSynapsesWeights(const int numVertices, AllVertices& vertices, AllEdges& synapses, AllSpikingNeuronsDeviceProperties* allVerticesDevice, AllSpikingSynapsesDeviceProperties* allEdgesDevice, Layout* layout) : void - +updateSynapsesWeights(const int numVertices, AllVertices& vertices, AllEdges& synapses, Layout* layout) : void -} - - -class ConnectionsFactory { - -ConnectionsFactory() - +~ConnectionsFactory() - -invokeCreateFunction(const string& className) : Connections* - +{static} getInstance() : ConnectionsFactory* - -createFunctions : ConnectionsFunctionMap - -connectionsInstance : shared_ptr - +createConnections(const string& className) : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class DynamicLayout { - +DynamicLayout() - +~DynamicLayout() - -fractionEndogenouslyActive_ : BGFLOAT - -fractionExcitatory_ : BGFLOAT - +{static} Create() : Layout* - +edgType(const int srcVertex, const int destVertex) : edgeType - +generateVertexTypeMap(int numVertices) : void - +initStarterMap(const int numVertices) : void - +loadParameters() : void - +printParameters() : void {query} -} - - -class EdgesFactory { - -EdgesFactory() - +~EdgesFactory() - -invokeCreateFunction(const string& className) : AllEdges* - +{static} getInstance() : EdgesFactory* - -createFunctions : EdgesFunctionMap - +createEdges(const string& className) : shared_ptr - -edgesInstance_ : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class EventBuffer { - +EventBuffer(int maxEvents) - -epochStart_ : int - +getNumElementsInEpoch() : int {query} - -numElementsInEpoch_ : int - -bufferEnd_ : int - -bufferFront_ : int - +getPastEvent(int offset) : uint64_t {query} - +operator[](int i) : uint64_t {query} - -dataSeries_ : vector - +clear() : void - +insertEvent(uint64_t timeStep) : void - +resize(int maxEvents) : void - +startNewEpoch() : void -} - - -class FixedLayout { - +FixedLayout() - +~FixedLayout() - +{static} Create() : Layout* - +edgType(const int srcVertex, const int destVertex) : edgeType - +generateVertexTypeMap(int numVertices) : void - +initStarterMap(const int numVertices) : void - +loadParameters() : void - +printParameters() : void {query} -} - - -class GPUModel { - +GPUModel() - +~GPUModel() - #allVerticesDevice_ : AllSpikingNeuronsDeviceProperties* - #allEdgesDevice_ : AllSpikingSynapsesDeviceProperties* - #synapseIndexMapDevice_ : EdgeIndexMap* - #randNoise_d : float* - -addEdge(AllEdges& synapses, edgeType type, const int srcVertex, const int destVertex, Coordinate& source, Coordinate& dest, BGFLOAT deltaT) : void - +advance() : void - #allocDeviceStruct(void** allVerticesDevice, void** allEdgesDevice) : void - -allocSynapseImap(int count) : void - #calcSummationPoint() : void - +copyCPUtoGPU() : void - +copyGPUtoCPU() : void - +copySynapseIndexMapHostToDevice(EdgeIndexMap& synapseIndexMapHost, int numVertices) : void - -createEdge(AllEdges& synapses, const int neuronIndex, const int synapseIndex, Coordinate source, Coordinate dest, BGFLOAT deltaT, edgeType type) : void - #deleteDeviceStruct(void** allVerticesDevice, void** allEdgesDevice) : void - -deleteSynapseImap() : void - -eraseEdge(AllEdges& synapses, const int neuronIndex, const int synapseIndex) : void - +finish() : void - +printGPUSynapsesPropsModel() : void {query} - +setupSim() : void - +updateConnections() : void - -updateHistory() : void -} - - -class GenericFunctionNode { - +GenericFunctionNode(const Operations::op& operationType, const std::function& function) - -function - +{static} Create() : Recorder* - +compileHistories() : void - #getStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : void - +init() : void - #initDataSet() : void - +printParameters() : void - +saveSimData() : void - +term() : void - +registerVariable(const string &varName, RecordableBase &recordVar, UpdatedType variableType) : void - +registerVariable(const string &varName, vector &recordVars) : void -} - - -abstract class IFunctionNode { - +~IFunctionNode() - #operationType_ : Operations::op - +{abstract} invokeFunction(const Operations::op& operation) : bool {query} -} - - -abstract class Recorder { - +~Recorder() - #fileLogger_ : log4cplus::Logger - #resultFileName_ : string - +{abstract} compileHistories(AllVertices& vertices) : void - #{abstract} getStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : void - +{abstract} init() : void - +{abstract} printParameters() : void - +{abstract} saveSimData(const AllVertices& vertices) : void - +{abstract} term() : void -} - - -abstract class Layout { - +Layout() - +~Layout() - +numCallerVertices_ : BGSIZE - +numEndogenouslyActiveNeurons_ : BGSIZE - +dist2_ : CompleteMatrix* - +dist_ : CompleteMatrix* - +xloc_ : VectorMatrix* - +yloc_ : VectorMatrix* - -gridLayout_ : bool - +starterMap_ : bool* - +{abstract} edgType(const int srcVertex, const int destVertex) : edgeType - #fileLogger_ : log4cplus::Logger - +getVertices() : shared_ptr {query} - #vertices_ : shared_ptr - #callerVertexList_ : vector - #endogenouslyActiveNeuronList_ : vector - #inhibitoryNeuronLayout_ : vector - +probedNeuronList_ : vector - #psapVertexList_ : vector - #responderVertexList_ : vector - +vertexTypeMap_ : vertexType* - +generateVertexTypeMap(int numVertices) : void - +initStarterMap(const int numVertices) : void - -initVerticesLocs() : void - +{abstract} loadParameters() : void - +printParameters() : void {query} - +setupLayout() : void -} - - -class LayoutFactory { - -LayoutFactory() - +~LayoutFactory() - -invokeCreateFunction(const string& className) : Layout* - +{static} getInstance() : LayoutFactory* - -createFunctions : LayoutFunctionMap - +createLayout(const string& className) : shared_ptr - -layoutInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -abstract class Model { - +Model() - +~Model() - #fileLogger_ : log4cplus::Logger - #connections_ : shared_ptr - +getConnections() : shared_ptr {query} - +getRecorder() : shared_ptr {query} - #recorder_ : shared_ptr - +getLayout() : shared_ptr {query} - #layout_ : shared_ptr - +{abstract} advance() : void - #{abstract} copyCPUtoGPU() : void - #{abstract} copyGPUtoCPU() : void - #createAllVertices() : void - +{abstract} finish() : void - #logSimStep() : void {query} - +saveResults() : void - +setupSim() : void - +{abstract} updateConnections() : void - +updateHistory() : void -} - - -class OperationManager { - -OperationManager() - +~OperationManager() - +{static} getInstance() : OperationManager& - -functionList_ : list> - -logger_ : log4cplus::Logger - +operationToString(const Operations::op& operation) : string {query} - +executeOperation(const Operations::op& operation) : void {query} - +registerOperation(const Operations::op& operation, const function& function) : void -} - - -class Operations { -} - - -class RecorderFactory { - -RecorderFactory() - +~RecorderFactory() - -invokeCreateFunction(const string& className) : Recorder* - +{static} getInstance() : RecorderFactory* - -createFunctions : RecorderFunctionMap - +createRecorder(const string& className) : shared_ptr - -recorderInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class Simulator { - -Simulator() - +~Simulator() - -deltaT_ : BGFLOAT - -epochDuration_ : BGFLOAT - +getDeltaT() : BGFLOAT {query} - +getEpochDuration() : BGFLOAT {query} - +getMaxRate() : BGFLOAT {query} - -maxRate_ : BGFLOAT - +{static} getInstance() : Simulator& - +getShort_timer() : Timer - +getTimer() : Timer - -short_timer : Timer - -timer : Timer - +instantiateSimulatorObjects() : bool - +getRgEndogenouslyActiveNeuronMap() : bool* {query} - -rgEndogenouslyActiveNeuronMap_ : bool* - -currentEpoch_ : int - +getCurrentStep() : int {query} - +getHeight() : int {query} - +getMaxEdgesPerVertex() : int {query} - +getMaxFiringRate() : int {query} - +getNumEpochs() : int {query} - +getTotalVertices() : int {query} - +getWidth() : int {query} - -height_ : int - -maxEdgesPerVertex_ : int - -maxFiringRate_ : int - -numEpochs_ : int - -totalNeurons_ : int - -width_ : int - -consoleLogger_ : log4cplus::Logger - -edgeLogger_ : log4cplus::Logger - -fileLogger_ : log4cplus::Logger - +getInitRngSeed() : long {query} - +getNoiseRngSeed() : long {query} - -initRngSeed_ : long - -noiseRngSeed_ : long - +getModel() : shared_ptr {query} - -model_ : shared_ptr - -configFileName_ : string - -deserializationFileName_ : string - +getConfigFileName() : string {query} - +getDeserializationFileName() : string {query} - +getSerializationFileName() : string {query} - +getStimulusFileName() : string {query} - -serializationFileName_ : string - -stimulusFileName_ : string - +getRgNeuronTypeMap() : vertexType* {query} - -rgNeuronTypeMap_ : vertexType* - +advanceEpoch(const int& currentEpoch) : void {query} - +copyCPUSynapseToGPU() : void - +copyGPUSynapseToCPU() : void - +finish() : void - -freeResources() : void - +loadParameters() : void - +printParameters() : void {query} - +reset() : void - +saveResults() : void {query} - +setConfigFileName(const string& fileName) : void - +setDeserializationFileName(const string& fileName) : void - +setSerializationFileName(const string& fileName) : void - +setStimulusFileName(const string& fileName) : void - +setup() : void - +simulate() : void -} - - -class VerticesFactory { - -VerticesFactory() - +~VerticesFactory() - -invokeCreateFunction(const string& className) : AllVertices* - +{static} getInstance() : VerticesFactory* - -createFunctions : VerticesFunctionMap - +createVertices(const string& className) : shared_ptr - -verticesInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class XmlRecorder { - +XmlRecorder() - +{static} Create() : Recorder* - #variablesHistory_ : vector> - #variableTable_ : vector - #resultOut_ : ofstream - +compileHistories() : void - #getStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : void - +init() : void - +printParameters() : void - +saveSimData() : void - +term() : void - +registerVariable(string varName, EventBuffer &recordVar) : void - - /' methods only used for unit test '/ - +XmlRecorder(string fileName_) - +getNeuronName(int numIndex) const : string - +getSingleNeuronEvents(int numIndex) const : &EventBuffer - +getHistory() const : const &vector> -} - - -enum Operations::op { - copyFromGPU - copyToGPU - deallocateGPUMemory - deserialize - loadParameters - printParameters - restoreToDefault - serialize -} - - -enum enumClassSynapses { - classAllDSSynapses - classAllDynamicSTDPSynapses - classAllSTDPSynapses - classAllSpikingSynapses - undefClassSynapses -} - - -class AllDSSynapsesDeviceProperties { - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* -} - - -class AllDynamicSTDPSynapsesDeviceProperties { - +D_ : BGFLOAT* - +F_ : BGFLOAT* - +U_ : BGFLOAT* - +r_ : BGFLOAT* - +u_ : BGFLOAT* - +lastSpike_ : uint64_t* -} - - -class AllEdgesDeviceProperties { - +W_ : BGFLOAT* - +psr_ : BGFLOAT* - +maxEdgesPerVertex_ : BGSIZE - +totalEdgeCount_ : BGSIZE - +edgeCounts_ : BGSIZE* - +inUse_ : bool* - +type_ : edgeType* - +countVertices_ : int - +destVertexIndex_ : int* - +sourceVertexIndex_ : int* -} - - -class AllIFNeuronsDeviceProperties { - +C1_ : BGFLOAT* - +C2_ : BGFLOAT* - +Cm_ : BGFLOAT* - +I0_ : BGFLOAT* - +Iinject_ : BGFLOAT* - +Inoise_ : BGFLOAT* - +Isyn_ : BGFLOAT* - +Rm_ : BGFLOAT* - +Tau_ : BGFLOAT* - +Trefract_ : BGFLOAT* - +Vinit_ : BGFLOAT* - +Vm_ : BGFLOAT* - +Vreset_ : BGFLOAT* - +Vrest_ : BGFLOAT* - +Vthresh_ : BGFLOAT* - +numStepsInRefractoryPeriod_ : int* -} - - -class AllIZHNeuronsDeviceProperties { - +Aconst_ : BGFLOAT* - +Bconst_ : BGFLOAT* - +C3_ : BGFLOAT* - +Cconst_ : BGFLOAT* - +Dconst_ : BGFLOAT* - +u_ : BGFLOAT* -} - - -class AllSTDPSynapsesDeviceProperties { - +Aneg_ : BGFLOAT* - +Apos_ : BGFLOAT* - +STDPgap_ : BGFLOAT* - +Wex_ : BGFLOAT* - +muneg_ : BGFLOAT* - +mupos_ : BGFLOAT* - +tauneg_ : BGFLOAT* - +taupos_ : BGFLOAT* - +tauspost_ : BGFLOAT* - +tauspre_ : BGFLOAT* - +useFroemkeDanSTDP_ : bool* - +delayIndexPost_ : int* - +delayQueuePostLength_ : int* - +totalDelayPost_ : int* - +delayQueuePost_ : uint32_t* -} - - -class AllSpikingNeuronsDeviceProperties { - +hasFired_ : bool* - +spikeCountOffset_ : int* - +spikeCount_ : int* - +spikeHistory_ : uint64_t** -} - - -class AllSpikingSynapsesDeviceProperties { - +decay_ : BGFLOAT* - +tau_ : BGFLOAT* - +delayIndex_ : int* - +delayQueueLength_ : int* - +totalDelay_ : int* - +delayQueue_ : uint32_t* -} - - -class AllVerticesDeviceProperties { - +summationPoints_ : BGFLOAT* -} - - -class ConnGrowth::GrowthParams { - +beta : BGFLOAT - +epsilon : BGFLOAT - +maxRate : BGFLOAT - +minRadius : BGFLOAT - +rho : BGFLOAT - +startRadius : BGFLOAT - +targetRate : BGFLOAT -} - - -class ConnStatic::DistDestVertex { - +dist : BGFLOAT - +operator<(DistDestVertex other) : bool {query} - +destVertex : int -} - - -class EdgeIndexMap { - +EdgeIndexMap() - +EdgeIndexMap(int vertexCount, int edgeCount) - +~EdgeIndexMap() - -numOfEdges_ : BGSIZE - -numOfVertices_ : BGSIZE - +incomingEdgeBegin_ : BGSIZE* - +incomingEdgeCount_ : BGSIZE* - +incomingEdgeIndexMap_ : BGSIZE* - +outgoingEdgeBegin_ : BGSIZE* - +outgoingEdgeCount_ : BGSIZE* - +outgoingEdgeIndexMap_ : BGSIZE* -} - - - - - -/' Inheritance relationships '/ - -.AllEdges <|-- .AllNeuroEdges - - -.AllEdgesDeviceProperties <|-- .AllSpikingSynapsesDeviceProperties - - -.AllIFNeurons <|-- .AllIZHNeurons - - -.AllIFNeurons <|-- .AllLIFNeurons - - -.AllIFNeuronsDeviceProperties <|-- .AllIZHNeuronsDeviceProperties - - -.AllNeuroEdges <|-- .AllSpikingSynapses - - -.AllSTDPSynapses <|-- .AllDynamicSTDPSynapses - - -.AllSTDPSynapsesDeviceProperties <|-- .AllDynamicSTDPSynapsesDeviceProperties - - -.AllSpikingNeurons <|-- .AllIFNeurons - - -.AllSpikingNeuronsDeviceProperties <|-- .AllIFNeuronsDeviceProperties - - -.AllSpikingSynapses <|-- .AllDSSynapses - - -.AllSpikingSynapses <|-- .AllSTDPSynapses - - -.AllSpikingSynapsesDeviceProperties <|-- .AllDSSynapsesDeviceProperties - - -.AllSpikingSynapsesDeviceProperties <|-- .AllSTDPSynapsesDeviceProperties - - -.AllVertices <|-- .AllSpikingNeurons - - -.AllVerticesDeviceProperties <|-- .AllSpikingNeuronsDeviceProperties - - -.Connections <|-- .ConnGrowth - - -.Connections <|-- .ConnStatic - - -.IFunctionNode <|-- .GenericFunctionNode - - -.Recorder <|-- .Hdf5Recorder - - -.Recorder <|-- .XmlRecorder - - -.Layout <|-- .DynamicLayout - - -.Layout <|-- .FixedLayout - - -.Model <|-- .CPUModel - - -.Model <|-- .GPUModel - - - - - -/' Aggregation relationships '/ - -.AllSpikingNeurons *-- .EventBuffer - - -.Connections *-- .AllEdges - - -.Connections *-- .EdgeIndexMap - - -.ConnectionsFactory *-- .Connections - - -.EdgesFactory *-- .AllEdges - - -.GPUModel o-- .AllSpikingNeuronsDeviceProperties - - -.GPUModel o-- .AllSpikingSynapsesDeviceProperties - - -.GPUModel o-- .EdgeIndexMap - - -.IFunctionNode *-- .Operations - - -.IFunctionNode *-- .Operations::op - - -.Layout *-- .AllVertices - - -.LayoutFactory *-- .Layout - - -.Model *-- .Connections - - -.Model *-- .Recorder - - -.Model *-- .Layout - - -.OperationManager *-- .IFunctionNode - - -.RecorderFactory *-- .Recorder - - -.Simulator *-- .Model - - -.VerticesFactory *-- .AllVertices - - - - - - -/' Nested objects '/ - -.ConnGrowth +-- .ConnGrowth::GrowthParams - - -.ConnStatic +-- .ConnStatic::DistDestVertex - - -.Operations +-- .Operations::op - - - - -@enduml diff --git a/docs/Developer/ClassDiagrams/graphittiDomain.puml b/docs/Developer/ClassDiagrams/graphittiDomain.puml deleted file mode 100644 index 3e230e3fc..000000000 --- a/docs/Developer/ClassDiagrams/graphittiDomain.puml +++ /dev/null @@ -1,367 +0,0 @@ -@startuml GraphittiDomainDiagram - - - - - -/' Objects '/ - -class AllDSSynapses { -} - - -class AllDynamicSTDPSynapses { -} - - -abstract class AllEdges { -} - - -class AllIFNeurons { -} - - -class AllIZHNeurons { -} - - -class AllLIFNeurons { -} - - -class AllNeuroEdges { -} - - -class AllSTDPSynapses { -} - - -abstract class AllSpikingNeurons { -} - - -class AllSpikingSynapses { -} - - -abstract class AllVertices { -} - - -class CPUModel { -} - - -class ConnGrowth { -} - - -class ConnStatic { -} - - -abstract class Connections { -} - - -class ConnectionsFactory { -} - - -class DynamicLayout { -} - - -class EdgesFactory { -} - - -class EventBuffer { -} - - -class FixedLayout { -} - - -class GPUModel { -} - - -class GenericFunctionNode { -} - - -class Hdf5GrowthRecorder { -} - - -class Hdf5Recorder { -} - - -abstract class IFunctionNode { -} - - -abstract class Recorder { -} - - -abstract class Layout { -} - - -class LayoutFactory { -} - - -abstract class Model { -} - - -class OperationManager { -} - - -class Operations { -} - - -class RecorderFactory { -} - - -class Simulator { -} - - -class VerticesFactory { -} - - -class XmlRecorder { -} - - -enum Operations::op { -} - - -enum enumClassSynapses { -} - - -class AllDSSynapsesDeviceProperties { -} - - -class AllDynamicSTDPSynapsesDeviceProperties { -} - - -class AllEdgesDeviceProperties { -} - - -class AllIFNeuronsDeviceProperties { -} - - -class AllIZHNeuronsDeviceProperties { -} - - -class AllSTDPSynapsesDeviceProperties { -} - - -class AllSpikingNeuronsDeviceProperties { -} - - -class AllSpikingSynapsesDeviceProperties { -} - - -class AllVerticesDeviceProperties { -} - - -class ConnGrowth::GrowthParams { -} - - -class ConnStatic::DistDestVertex { -} - - -class EdgeIndexMap { -} - - - - - -/' Inheritance relationships '/ - -.AllEdges <|-- .AllNeuroEdges - - -.AllEdgesDeviceProperties <|-- .AllSpikingSynapsesDeviceProperties - - -.AllIFNeurons <|-- .AllIZHNeurons - - -.AllIFNeurons <|-- .AllLIFNeurons - - -.AllIFNeuronsDeviceProperties <|-- .AllIZHNeuronsDeviceProperties - - -.AllNeuroEdges <|-- .AllSpikingSynapses - - -.AllSTDPSynapses <|-- .AllDynamicSTDPSynapses - - -.AllSTDPSynapsesDeviceProperties <|-- .AllDynamicSTDPSynapsesDeviceProperties - - -.AllSpikingNeurons <|-- .AllIFNeurons - - -.AllSpikingNeuronsDeviceProperties <|-- .AllIFNeuronsDeviceProperties - - -.AllSpikingSynapses <|-- .AllDSSynapses - - -.AllSpikingSynapses <|-- .AllSTDPSynapses - - -.AllSpikingSynapsesDeviceProperties <|-- .AllDSSynapsesDeviceProperties - - -.AllSpikingSynapsesDeviceProperties <|-- .AllSTDPSynapsesDeviceProperties - - -.AllVertices <|-- .AllSpikingNeurons - - -.AllVerticesDeviceProperties <|-- .AllSpikingNeuronsDeviceProperties - - -.Connections <|-- .ConnGrowth - - -.Connections <|-- .ConnStatic - - -.Hdf5Recorder <|-- .Hdf5GrowthRecorder - - -.IFunctionNode <|-- .GenericFunctionNode - - -.Recorder <|-- .Hdf5Recorder - - -.Recorder <|-- .XmlRecorder - - -.Layout <|-- .DynamicLayout - - -.Layout <|-- .FixedLayout - - -.Model <|-- .CPUModel - - -.Model <|-- .GPUModel - - - - - -/' Aggregation relationships '/ - -.AllSpikingNeurons *-- .EventBuffer - - -.Connections *-- .AllEdges - - -.Connections *-- .EdgeIndexMap - - -.ConnectionsFactory *-- .Connections - - -.EdgesFactory *-- .AllEdges - - -.GPUModel o-- .AllSpikingNeuronsDeviceProperties - - -.GPUModel o-- .AllSpikingSynapsesDeviceProperties - - -.GPUModel o-- .EdgeIndexMap - - -.IFunctionNode *-- .Operations - - -.IFunctionNode *-- .Operations::op - - -.Layout *-- .AllVertices - - -.LayoutFactory *-- .Layout - - -.Model *-- .Connections - - -.Model *-- .Recorder - - -.Model *-- .Layout - - -.OperationManager *-- .IFunctionNode - - -.RecorderFactory *-- .Recorder - - -.Simulator *-- .Model - - -.VerticesFactory *-- .AllVertices - - - - - - -/' Nested objects '/ - -.ConnGrowth +-- .ConnGrowth::GrowthParams - - -.ConnStatic +-- .ConnStatic::DistDestVertex - - -.Operations +-- .Operations::op - - - - -@enduml diff --git a/docs/Developer/ClassDiagrams/hand-drawn.pdf b/docs/Developer/ClassDiagrams/hand-drawn.pdf deleted file mode 100644 index 7d09544c4..000000000 Binary files a/docs/Developer/ClassDiagrams/hand-drawn.pdf and /dev/null differ diff --git a/docs/Developer/ClassDiagrams/layout.puml b/docs/Developer/ClassDiagrams/layout.puml deleted file mode 100644 index 463f795f3..000000000 --- a/docs/Developer/ClassDiagrams/layout.puml +++ /dev/null @@ -1,366 +0,0 @@ -@startuml LayoutClassDiagram - - - - - -/' Objects '/ - -class AllIFNeurons { - +AllIFNeurons() - +~AllIFNeurons() - -IinjectRange_ : BGFLOAT - -InoiseRange_ : BGFLOAT - -VinitRange_ : BGFLOAT - -VresetRange_ : BGFLOAT - -VrestingRange_ : BGFLOAT - -VthreshRange_ : BGFLOAT - -starterVresetRange_ : BGFLOAT - -starterVthreshRange_ : BGFLOAT - +C1_ : BGFLOAT* - +C2_ : BGFLOAT* - +Cm_ : BGFLOAT* - +I0_ : BGFLOAT* - +Iinject_ : BGFLOAT* - +Inoise_ : BGFLOAT* - +Isyn_ : BGFLOAT* - +Rm_ : BGFLOAT* - +Tau_ : BGFLOAT* - +Trefract_ : BGFLOAT* - +Vinit_ : BGFLOAT* - +Vm_ : BGFLOAT* - +Vreset_ : BGFLOAT* - +Vrest_ : BGFLOAT* - +Vthresh_ : BGFLOAT* - +numStepsInRefractoryPeriod_ : int* - +toString(const int index) : string {query} - +advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - #allocDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - +allocNeuronDeviceStruct(void** allVerticesDevice) : void - +clearNeuronSpikeCounts(void* allVerticesDevice) : void - #copyDeviceToHost(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - #copyHostToDevice(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - +copyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : void - +copyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : void - +copyNeuronDeviceToHost(void* allVerticesDevice) : void - +copyNeuronHostToDevice(void* allVerticesDevice) : void - +createAllVertices(Layout* layout) : void - #createNeuron(int neuronIndex, Layout* layout) : void - #deleteDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - +deleteNeuronDeviceStruct(void* allVerticesDevice) : void - +deserialize(istream& input) : void - #initNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : void - +loadParameters() : void - +printParameters() : void {query} - #readNeuron(istream& input, int i) : void - +serialize(ostream& output) : void {query} - #setNeuronDefaults(const int index) : void - +setupVertices() : void - #writeNeuron(ostream& output, int i) : void {query} -} - - -class AllIZHNeurons { - +AllIZHNeurons() - +~AllIZHNeurons() - +{static} Create() : AllVertices* - -excAconst_ : BGFLOAT - -excBconst_ : BGFLOAT - -excCconst_ : BGFLOAT - -excDconst_ : BGFLOAT - -inhAconst_ : BGFLOAT - -inhBconst_ : BGFLOAT - -inhCconst_ : BGFLOAT - -inhDconst_ : BGFLOAT - +Aconst_ : BGFLOAT* - +Bconst_ : BGFLOAT* - +C3_ : BGFLOAT* - +Cconst_ : BGFLOAT* - +Dconst_ : BGFLOAT* - +u_ : BGFLOAT* - -{static} DEFAULT_a : static constexpr BGFLOAT - -{static} DEFAULT_b : static constexpr BGFLOAT - -{static} DEFAULT_c : static constexpr BGFLOAT - -{static} DEFAULT_d : static constexpr BGFLOAT - +toString(const int index) : string {query} - #advanceNeuron(const int index) : void - +advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - #allocDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - +allocNeuronDeviceStruct(void** allVerticesDevice) : void - +clearNeuronSpikeCounts(void* allVerticesDevice) : void - #copyDeviceToHost(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - #copyHostToDevice(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - +copyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : void - +copyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : void - +copyNeuronDeviceToHost(void* allVerticesDevice) : void - +copyNeuronHostToDevice(void* allVerticesDevice) : void - +createAllVertices(Layout* layout) : void - #createNeuron(int neuronIndex, Layout* layout) : void - #deleteDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - +deleteNeuronDeviceStruct(void* allVerticesDevice) : void - +deserialize(istream& input) : void - #fire(const int index) : void - #initNeuronConstsFromParamValues(int neuronIndex, const BGFLOAT deltaT) : void - +printParameters() : void {query} - #readNeuron(istream& input, int index) : void - +serialize(ostream& output) : void {query} - #setNeuronDefaults(const int index) : void - +setupVertices() : void - #writeNeuron(ostream& output, int index) : void {query} -} - - -class AllLIFNeurons { - +AllLIFNeurons() - +~AllLIFNeurons() - +{static} Create() : AllVertices* - #advanceNeuron(const int index) : void - +advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - #fire(const int index) : void - +printParameters() : void {query} -} - - -abstract class AllSpikingNeurons { - +AllSpikingNeurons() - +~AllSpikingNeurons() - #fAllowBackPropagation_ : bool - +getSpikeHistory(int index, int offIndex) : uint64_t - +vertexEvents_ : vector - +hasFired_ : vector - #{abstract} advanceNeuron(const int index) : void - +advanceVertices(AllEdges& synapses, const EdgeIndexMap* edgeIndexMap) : void - #clearDeviceSpikeCounts(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : void - +{abstract} clearNeuronSpikeCounts(void* allVerticesDevice) : void - +clearSpikeCounts() : void - #copyDeviceSpikeCountsToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : void - #copyDeviceSpikeHistoryToHost(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : void - +{abstract} copyNeuronDeviceSpikeCountsToHost(void* allVerticesDevice) : void - +{abstract} copyNeuronDeviceSpikeHistoryToHost(void* allVerticesDevice) : void - #fire(const int index) : void - +setAdvanceVerticesDeviceParams(AllEdges& synapses) : void - +setupVertices() : void -} - - -abstract class AllVertices { - +AllVertices() - +~AllVertices() - +summationPoints_ : BGFLOAT* - #size_ : int - #fileLogger_ : log4cplus::Logger - #vertexLogger_ : log4cplus::Logger - +{abstract} toString(const int i) : string {query} - +{abstract} advanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float* randNoise, EdgeIndexMap* edgeIndexMapDevice) : void - +{abstract} advanceVertices(AllEdges& edges, const EdgeIndexMap* edgeIndexMap) : void - +{abstract} allocNeuronDeviceStruct(void** allVerticesDevice) : void - +{abstract} copyNeuronDeviceToHost(void* allVerticesDevice) : void - +{abstract} copyNeuronHostToDevice(void* allVerticesDevice) : void - +{abstract} createAllVertices(Layout* layout) : void - +{abstract} deleteNeuronDeviceStruct(void* allVerticesDevice) : void - +{abstract} loadParameters() : void - +printParameters() : void {query} - +{abstract} setAdvanceVerticesDeviceParams(AllEdges& edges) : void - +setupVertices() : void -} - - -class DynamicLayout { - +DynamicLayout() - +~DynamicLayout() - -fractionEndogenouslyActive_ : BGFLOAT - -fractionExcitatory_ : BGFLOAT - +{static} Create() : Layout* - +edgType(const int srcVertex, const int destVertex) : edgeType - +generateVertexTypeMap(int numVertices) : void - +initStarterMap(const int numVertices) : void - +loadParameters() : void - +printParameters() : void {query} -} - - -class EventBuffer { - +EventBuffer(int maxEvents) - -epochStart_ : int - +getNumElementsInEpoch() : int {query} - -numElementsInEpoch_ : int - -bufferEnd_ : int - -bufferFront_ : int - +getPastEvent(int offset) : uint64_t {query} - +operator[](int i) : uint64_t {query} - -dataSeries_ : vector - +clear() : void - +insertEvent(uint64_t timeStep) : void - +resize(int maxEvents) : void - +startNewEpoch() : void -} - - -class FixedLayout { - +FixedLayout() - +~FixedLayout() - +{static} Create() : Layout* - +edgType(const int srcVertex, const int destVertex) : edgeType - +generateVertexTypeMap(int numVertices) : void - +initStarterMap(const int numVertices) : void - +loadParameters() : void - +printParameters() : void {query} -} - - -abstract class Layout { - +Layout() - +~Layout() - +numCallerVertices_ : BGSIZE - +numEndogenouslyActiveNeurons_ : BGSIZE - +dist2_ : CompleteMatrix* - +dist_ : CompleteMatrix* - +xloc_ : VectorMatrix* - +yloc_ : VectorMatrix* - -gridLayout_ : bool - +starterMap_ : bool* - +{abstract} edgType(const int srcVertex, const int destVertex) : edgeType - #fileLogger_ : log4cplus::Logger - +getVertices() : shared_ptr {query} - #vertices_ : shared_ptr - #callerVertexList_ : vector - #endogenouslyActiveNeuronList_ : vector - #inhibitoryNeuronLayout_ : vector - +probedNeuronList_ : vector - #psapVertexList_ : vector - #responderVertexList_ : vector - +vertexTypeMap_ : vertexType* - +generateVertexTypeMap(int numVertices) : void - +initStarterMap(const int numVertices) : void - -initVerticesLocs() : void - +{abstract} loadParameters() : void - +printParameters() : void {query} - +setupLayout() : void -} - - -class LayoutFactory { - -LayoutFactory() - +~LayoutFactory() - -invokeCreateFunction(const string& className) : Layout* - +{static} getInstance() : LayoutFactory* - -createFunctions : LayoutFunctionMap - +createLayout(const string& className) : shared_ptr - -layoutInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class VerticesFactory { - -VerticesFactory() - +~VerticesFactory() - -invokeCreateFunction(const string& className) : AllVertices* - +{static} getInstance() : VerticesFactory* - -createFunctions : VerticesFunctionMap - +createVertices(const string& className) : shared_ptr - -verticesInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class AllIFNeuronsDeviceProperties { - +C1_ : BGFLOAT* - +C2_ : BGFLOAT* - +Cm_ : BGFLOAT* - +I0_ : BGFLOAT* - +Iinject_ : BGFLOAT* - +Inoise_ : BGFLOAT* - +Isyn_ : BGFLOAT* - +Rm_ : BGFLOAT* - +Tau_ : BGFLOAT* - +Trefract_ : BGFLOAT* - +Vinit_ : BGFLOAT* - +Vm_ : BGFLOAT* - +Vreset_ : BGFLOAT* - +Vrest_ : BGFLOAT* - +Vthresh_ : BGFLOAT* - +numStepsInRefractoryPeriod_ : int* -} - - -class AllIZHNeuronsDeviceProperties { - +Aconst_ : BGFLOAT* - +Bconst_ : BGFLOAT* - +C3_ : BGFLOAT* - +Cconst_ : BGFLOAT* - +Dconst_ : BGFLOAT* - +u_ : BGFLOAT* -} - - -class AllSpikingNeuronsDeviceProperties { - +hasFired_ : bool* - +spikeCountOffset_ : int* - +spikeCount_ : int* - +spikeHistory_ : uint64_t** -} - - -class AllVerticesDeviceProperties { - +summationPoints_ : BGFLOAT* -} - - - - - -/' Inheritance relationships '/ - -.AllIFNeurons <|-- .AllIZHNeurons - - -.AllIFNeurons <|-- .AllLIFNeurons - - -.AllIFNeuronsDeviceProperties <|-- .AllIZHNeuronsDeviceProperties - - -.AllSpikingNeurons <|-- .AllIFNeurons - - -.AllSpikingNeuronsDeviceProperties <|-- .AllIFNeuronsDeviceProperties - - -.AllVertices <|-- .AllSpikingNeurons - - -.AllVerticesDeviceProperties <|-- .AllSpikingNeuronsDeviceProperties - - -.Layout <|-- .DynamicLayout - - -.Layout <|-- .FixedLayout - - - - - -/' Aggregation relationships '/ - -.AllSpikingNeurons *-- .EventBuffer - - -.Layout *-- .AllVertices - - -.LayoutFactory *-- .Layout - - -.VerticesFactory *-- .AllVertices - - - - - - -/' Nested objects '/ - - - -@enduml diff --git a/docs/Developer/ClassDiagrams/operationManager.puml b/docs/Developer/ClassDiagrams/operationManager.puml deleted file mode 100644 index 3aded436e..000000000 --- a/docs/Developer/ClassDiagrams/operationManager.puml +++ /dev/null @@ -1,70 +0,0 @@ -@startuml OperationManagerClassDiagram - - -class GenericFunctionNode { - +GenericFunctionNode(const Operations::op& operationType, const std::function& function) - -function> - -logger_ : log4cplus::Logger - +operationToString(const Operations::op& operation) : string {query} - +executeOperation(const Operations::op& operation) : void {query} - +registerOperation(const Operations::op& operation, const function& function) : void -} - - -class Operations { -} - - -enum Operations::op { - copyFromGPU - copyToGPU - deallocateGPUMemory - deserialize - loadParameters - printParameters - restoreToDefault - serialize -} - - -/' Inheritance '/ - -.IFunctionNode <|-- .GenericFunctionNode - - -/' Aggregation relationships '/ - -.IFunctionNode *-- .Operations - - -.IFunctionNode *-- .Operations::op - - -.OperationManager *-- .IFunctionNode - - - -/' Nested objects '/ - -.Operations +-- .Operations::op - - - -@enduml \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/packages.puml b/docs/Developer/ClassDiagrams/packages.puml deleted file mode 100644 index fd900c42b..000000000 --- a/docs/Developer/ClassDiagrams/packages.puml +++ /dev/null @@ -1,106 +0,0 @@ -@startuml package UML - -/'set up line '/ -skinparam linetype ortho -/'hide the class members '/ -hide members - -/'package '/ -package Core{ - /'class '/ - class Simulator - class CPUSpikingModel implements Model - class GPUSpikingModel implements Model - class Operations - class OperationManager - class ParameterManager - - /'class relationships in this package '/ - Model -left-o Simulator - Operations -right-o OperationManager - Simulator ---> OperationManager : commands - - /' relative position of classes in this diagram'/ - CPUSpikingModel -[hidden]right> GPUSpikingModel - CPUSpikingModel -[hidden]-> Operations - OperationManager -[hidden]-> ParameterManager -} - -/'package '/ -package Layouts{ - class FixedLayout implements Layout - class DynamicLayout implements Layout - class LayoutsFactory - FixedLayout <-- LayoutsFactory : instantiates - DynamicLayout <-- LayoutsFactory : instantiates -} - -/'package '/ -package Vertices{ - class AllSpikingNeurons implements AllVertices - class AllIFNeurons extends AllSpikingNeurons - class AllLiFNeurons extends AllIFNeurons - class AllZHNeurons extends AllIFNeurons - class VerticesFactory - VerticesFactory -up-> AllLiFNeurons : instantiates - VerticesFactory -up-> AllZHNeurons : instantiates -} - -/'package '/ -package Recorders{ - class XmLRecorder implements Recorder - class HDF5Recorder implements Recorder - class Hdf5GrowthRecorder extends HDF5Recorder - class RecordersFactory - XmLRecorder <-- RecordersFactory : instantiates - HDF5Recorder <-- RecordersFactory : instantiates - Hdf5GrowthRecorder <--- RecordersFactory : instantiates -} - -/'package '/ -package Connections{ - class ConnStatic implements Connections - class ConnGrowth Implements Connections - class ConnectionsFactory - ConnectionsFactory --up> ConnStatic : instantiates - ConnectionsFactory --up> ConnGrowth : instantiates -} - -/'package '/ -package Edges{ - class AllNeuroEdges implements AllEdges - class AllSpikingSynapses extends AllNeuroEdges - class AllSTDPSynapses extends AllSpikingSynapses - class AllDSSynapses extends AllSpikingSynapses - class AllDynamicsSTDPSynapses extends AllSTDPSynapses - class EdgesFactory - EdgesFactory --up-> AllSTDPSynapses : instantiates - EdgesFactory --up-> AllDSSynapses : instantiates - EdgesFactory --up> AllDynamicsSTDPSynapses : instantiates -} - -/'relationship of classes in Core and other packages'/ -Simulator -[#red]-> LayoutsFactory : commands -Simulator -[#red]----> ConnectionsFactory: commands -Simulator -[#red]----> RecordersFactory: commands -Model o-[#red] Layout -Model o-[#red]-- Connections -Model o-[#red]--- IRecorder - -'relationship of classes in package Layouts and Vertices'/ -Layout o-[#red] AllVertices -Layout -[#red]---> VerticesFactory : commands - -/'relationship of classes in package connections and other package'/ -/'Connections here refers to the interface in package'/ -Connections o-[#red]- AllEdges -Connections -[#red]---> EdgesFactory : commands - -/'overall image layout'/ -/'set up relative packages position in this diagram '/ -Core -[hidden]right> Layouts -Layouts -[hidden]right> Vertices -Core -[hidden]down----> Recorders -Layouts -[hidden]down----> Connections -Vertices -[hidden]down-----> Edges -@enduml \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/recordable.puml b/docs/Developer/ClassDiagrams/recordable.puml deleted file mode 100644 index 7d6d415b9..000000000 --- a/docs/Developer/ClassDiagrams/recordable.puml +++ /dev/null @@ -1,63 +0,0 @@ -@startuml Recordable ClassDiagram - -/' Objects '/ - -abstract class RecordableBase { - -basicDataType_ : string - +{abstract} getNumElements() const : int - +{abstract} startNewEpoch() : void - +{abstract} getElement(int index) const : variant - +{abstract} setDataType() : void - +{abstract} getDataType() : string -} -class RecordableConstant{ - -element : T - +getNumElements() const : int - +startNewEpoch() : void - +getElement(int index) const : variant - +setDataType() : void - +getDataType() : string -} - -class RecordableVector{ - -dataSeries__ : vector - +getNumElement() const : int - +startNewEpoch() : void - +getElement(int index) const : variant - +setDataType() : void - +getDataType() : string - /'vector methods'/ - +resize(int maxEvents) : void - +operator[](int i) : &T -} - -class EventBuffer { - +EventBuffer(int maxEvents) - -epochStart_ : int - +setDataType() : void - +getDataType() : string - +getNumElements() const : int - +getElement(int index) const : variant - +getNumElementsInEpoch() : int {query} - -numElementsInEpoch_ : int - -bufferEnd_ : int - -bufferFront_ : int - +getPastEvent(int offset) : uint64_t {query} - +operator[](int i) : uint64_t {query} - /'-dataSeries_ : vector'/ - +clear() : void - +insertEvent(uint64_t timeStep) : void - +resize(int maxEvents) : void - +startNewEpoch() : void -} - - - - -/' Inheritance relationships '/ - -.RecordableBase <|-- .RecordableVector - -.RecordableVector <|-- .EventBuffer - -.RecordableBase <|-- .RecordableConstant \ No newline at end of file diff --git a/docs/Developer/ClassDiagrams/recorder.puml b/docs/Developer/ClassDiagrams/recorder.puml deleted file mode 100644 index 4abc7fa51..000000000 --- a/docs/Developer/ClassDiagrams/recorder.puml +++ /dev/null @@ -1,122 +0,0 @@ -@startuml RecorderClassDiagram - - - - - -/' Objects '/ - - -class Hdf5Recorder { - +Hdf5Recorder() - #resultOut_ : H5File - #variableTable_ : vector - +{static} Create() : Recorder* - +compileHistories() : void - #getStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : void - +init() : void - #initDataSet() : void - +printParameters() : void - +saveSimData() : void - +term() : void - +registerVariable(const string &varName, RecordableBase &recordVar, UpdatedType variableType) : void - +registerVariable(const string &varName, vector &recordVars) : void -} - -struct hdf5VariableInfo { - #variableName_ : string - #variableLocation_ : RecordableBase& - #dataType_ : string - #hdf5Datatype_ : DataType - #hdf5DataSet_ : DataSet hdf5DataSet_ - #variableType: UpdatedType - +hdf5VariableInfo(string name, RecordableBase &location) - +captureData() - +convertType() -} - - -abstract class Recorder { - +~Recorder() - #fileLogger_ : log4cplus::Logger - #resultFileName_ : string - +{abstract} compileHistories(AllVertices& vertices) : void - #{abstract} getStarterNeuronMatrix(VectorMatrix& matrix, const bool* starterMap) : void - +{abstract} init() : void - +{abstract} printParameters() : void - +{abstract} saveSimData(const AllVertices& vertices) : void - +{abstract} term() : void - +{abstract} registerVariable(const string &varName, RecordableBase &recordVar, UpdatedType variableType) : void - +{abstract} registerVariable(const string &varName, vector &recordVars) : void -} - - -class RecorderFactory { - -RecorderFactory() - +~RecorderFactory() - -invokeCreateFunction(const string& className) : Recorder* - +{static} getInstance() : RecorderFactory* - -createFunctions : RecorderFunctionMap - +createRecorder(const string& className) : shared_ptr - -recorderInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class XmlRecorder { - +XmlRecorder() - +{static} Create() : Recorder* - #variableTable_ : vector - #resultOut_ : ofstream - +compileHistories() : void - +init() : void - +printParameters() : void - +saveSimData() : void - +term() : void - +registerVariable(const string &varName, RecordableBase &recordVar, UpdatedType variableType) : void - +registerVariable(const string &varName, vector &recordVars) : void - - /' methods only used for unit test - +XmlRecorder(string fileName_) - +getVariableName(int numIndex) const : const string& - +getSingleVariable(int numIndex) const : &RecordableBase - +getHistory() const : const &vector> - '/ -} - -struct singleVariableInfo { - #variableName_ : string - #variableLocation_ : RecordableBase& - #variableHistory_ : vector - #dataType_ : string - #variableType: UpdatedType - +singleVariableInfo(string name, RecordableBase &location) - +captureData() -} - - - -/' Inheritance relationships '/ - -.Recorder <|-- .Hdf5Recorder - - -.Recorder <|-- .XmlRecorder - - -/' Aggregation relationships '/ - -.RecorderFactory *-- .Recorder - -/' Composition relationships '/ - -.XmlRecorder *-- .singleVariableInfo - -.Hdf5Recorder *-- .hdf5VariableInfo - - -/' Nested objects '/ - - - -@enduml diff --git a/docs/Developer/ClassDiagrams/updatedRecorder.puml b/docs/Developer/ClassDiagrams/updatedRecorder.puml deleted file mode 100644 index 13d7be721..000000000 --- a/docs/Developer/ClassDiagrams/updatedRecorder.puml +++ /dev/null @@ -1,133 +0,0 @@ -@startuml Agile Recorder Class Diagram Design - -class RecorderFactory { - -RecorderFactory() - +~RecorderFactory() - -invokeCreateFunction(const string& className) : Recorder* - +{static} getInstance() : RecorderFactory* - -createFunctions : RecorderFunctionMap - +createRecorder(const string& className) : shared_ptr - -recorderInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - -class Recorder { - +~Recorder() - #fileLogger_ : log4cplus::Logger - #resultFileName_ : string - +{abstract} compileHistories() : void - +{abstract} init() : void - +{abstract} printParameters() : void - +{abstract} saveSimData() : void - +{abstract} term() : void - +{abstract}registerVariable(const string &varName, RecordableBase &recordVar, UpdatedType variableType) : void - +{abstract}registerVariable(const string &varName, vector &recordVars, UpdatedType variableType) : void -} - -class HDF5Recorder { - -variableHDF5Table : vector - #resultOut_ : H5File - +{static} Create() : Recorder* - +compileHistories() : void - +init() : void - +printParameters() : void - +saveSimData() : void - +term() : void - /'add more'/ -} - -class XmlRecorder { - #variableTable_ : vector - +XmlRecorder() - #resultOut_ : ofstream - +{static} Create() : Recorder* - +compileHistories() : void - +init() : void - +printParameters() : void - +term() : void - +saveSimData() : void - +registerVariable(const string &varName, RecordableBase &recordVar, UpdatedType variableType) : void - +registerVariable(const string &varName, vector &recordVars) : void - - /' methods only used for unit test - +XmlRecorder(string fileName_) - +getVariableName(int numIndex) const : const string& - +getSingleVariable(int numIndex) const : &RecordableBase - +getHistory() const : const &vector> - '/ -} - -class BaseVariableInfo { - #variableName_ : string - #variableLocation_ : RecordableBase& - #dataType_ : string - #updatedType_ : variableType - +singleVariableInfo(string name, RecordableBase &location, UpdatedType variableType) - +singleVariableInfo(string name, RecordableBase &location, - UpdatedType variableType, string, constantDataType) - +captureData(); -} - -class XmlVariableInfo { - -variableHistory_: vector> -} - -class HDF5VariableInfo { - -variableDataset_: Dataset - /'add more methods'/ -} - -abstract class RecordableBase { - #basicDataType_ : string - +{abstract} getNumElements() const : int - +{abstract} startNewEpoch() : void - +{abstract} getElement(int index) const : variant - +{abstract} setDataType() : void - +{abstract} getDataType() : string -} - -class RecordableConstant{ - -element : T - +getNumElements() const : int - +startNewEpoch() : void - +getElement(int index) const : variant - +setDataType() : void - +getDataType() : string - /'add more method if needed'/ -} - - -class RecordableVector{ - -dataSeries__ : vector - +getNumElement() const : int - +startNewEpoch() : void - +getElement(int index) const : variant - +setDataType() : void - +getDataType() : string - /'vector methods'/ - +resize(int maxEvents) : void - +operator[](int i) : &T -} - - -/' relationships '/ - -.RecorderFactory *-- .Recorder - -Recorder <|-- XmlRecorder : inherits -Recorder <|-- HDF5Recorder : inherits - -Recorder *-- BaseVariableInfo : contains - -BaseVariableInfo <|-- XmlVariableInfo : inherits -BaseVariableInfo <|-- HDF5VariableInfo : inherits - -XmlRecorder *-- XmlVariableInfo : contains -HDF5Recorder *-- HDF5VariableInfo : contains - -BaseVariableInfo *-- RecordableBase : contains - -RecordableBase <|-- RecordableConstant : inherits -RecordableBase <|-- RecordableVector : inherits - -@enduml diff --git a/docs/Developer/ClassDiagrams/vertices.puml b/docs/Developer/ClassDiagrams/vertices.puml deleted file mode 100644 index c8d468dfb..000000000 --- a/docs/Developer/ClassDiagrams/vertices.puml +++ /dev/null @@ -1,343 +0,0 @@ -@startuml VerticesClassDiagram - - - -/' Objects '/ - -class AllIFNeurons { - +AllIFNeurons() - +{abstract} ~AllIFNeurons() - +{abstract} setupVertices() : void <> - +{abstract} loadParameters() : void - +{abstract} printParameters() : void {query} - +{abstract} createAllVertices(Layout& layout) : void - +{abstract} toString(int index) : string {query} - +{abstract} deserialize(istream& input) : void - +{abstract} serialize(ostream& output) : void {query} - +serialize(Archive& archive) : void - +{abstract} advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : void - +{abstract} allocVerticesDeviceStruct(void** allVerticesDevice) : void - +{abstract} deleteVerticesDeviceStruct(void* allVerticesDevice) : void - +{abstract} clearVertexHistory(void* allVerticesDevice) : void <> - +{abstract} copyFromDevice(void* deviceAddress) : void <> - +{abstract} copyToDevice(void* deviceAddress) : void <> - #allocDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - #deleteDeviceStruct(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - #copyDeviceToHost(AllIFNeuronsDeviceProperties& allVerticesDevice) : void - #createNeuron(int neuronIndex, Layout& layout) : void - #setNeuronDefaults(int index) : void - #{abstract} initNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) : void - #readNeuron(istream& input, int i) : void - #writeNeuron(ostream& output, int i) : void {query} - +Trefract_ : vector - +Vthresh_ : vector - +Vrest_ : vector - +Vreset_ : vector - +Vinit_ : vector - +Cm_ : vector - +Rm_ : vector - +Inoise_ : vector - +Iinject_ : vector - +Isyn_ : vector - +numStepsInRefractoryPeriod_ : vector - +C1_ : vector - +C2_ : vector - +I0_ : vector - +Vm_ : vector - +Tau_ : vector - -IinjectRange_ : BGFLOAT[2] - -InoiseRange_ : BGFLOAT[2] - -VthreshRange_ : BGFLOAT[2] - -VrestingRange_ : BGFLOAT[2] - -VresetRange_ : BGFLOAT[2] - -VinitRange_ : BGFLOAT[2] - -starterVthreshRange_ : BGFLOAT[2] - -starterVresetRange_ : BGFLOAT[2] -} - - -class AllIZHNeurons { - +AllIZHNeurons() - +{abstract} ~AllIZHNeurons() - +{static} Create() : AllVertices* - +{abstract} setupVertices() : void <> - +{abstract} printParameters() : void {query} <> - +{abstract} createAllVertices(Layout& layout) : void <> - +{abstract} toString(int index) : string {query} <> - +{abstract} deserialize(istream& input) : void <> - +{abstract} serialize(ostream& output) : void {query} <> - +serialize(Archive& archive) : void - +{abstract} advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : void <> - +{abstract} allocVerticesDeviceStruct(void** allVerticesDevice) : void <> - +{abstract} deleteVerticesDeviceStruct(void* allVerticesDevice) : void <> - +{abstract} clearVertexHistory(void* allVerticesDevice) : void <> - +{abstract} copyFromDevice(void* deviceAddress) : void <> - +{abstract} copyToDevice(void* deviceAddress) : void <> - #allocDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - #deleteDeviceStruct(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - #copyHostToDevice(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - #copyDeviceToHost(AllIZHNeuronsDeviceProperties& allVerticesDevice) : void - #{abstract} advanceNeuron(int index) : void - #{abstract} fire(int index) : void - #createNeuron(int neuronIndex, Layout& layout) : void - #setNeuronDefaults(int index) : void - #{abstract} initNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) : void <> - #readNeuron(istream& input, int index) : void - #writeNeuron(ostream& output, int index) : void {query} - +Aconst_ : vector - +Bconst_ : vector - +Cconst_ : vector - +Dconst_ : vector - +u_ : vector - +C3_ : vector - -{static} DEFAULT_a : static constexpr BGFLOAT - -{static} DEFAULT_b : static constexpr BGFLOAT - -{static} DEFAULT_c : static constexpr BGFLOAT - -{static} DEFAULT_d : static constexpr BGFLOAT - -excAconst_ : BGFLOAT[2] - -inhAconst_ : BGFLOAT[2] - -excBconst_ : BGFLOAT[2] - -inhBconst_ : BGFLOAT[2] - -excCconst_ : BGFLOAT[2] - -inhCconst_ : BGFLOAT[2] - -excDconst_ : BGFLOAT[2] - -inhDconst_ : BGFLOAT[2] -} - - -class AllLIFNeurons { - +AllLIFNeurons() - +{abstract} ~AllLIFNeurons() - +{static} Create() : AllVertices* - +{abstract} printParameters() : void {query} <> - +serialize(Archive& archive) : void - +{abstract} advanceVertices(AllEdges& synapses, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : void <> - #{abstract} advanceNeuron(int index) : void - #{abstract} fire(int index) : void -} - - -abstract class AllSpikingNeurons { - +AllSpikingNeurons() - +{abstract} ~AllSpikingNeurons() - +{abstract} setupVertices() : void <> - +clearSpikeCounts() : void - +{abstract} registerHistoryVariables() : void <> - +serialize(Archive& archive) : void - +{abstract} setAdvanceVerticesDeviceParams(AllEdges& synapses) : void - +{abstract} integrateVertexInputs(void* allVerticesDevice, EdgeIndexMapDevice* edgeIndexMapDevice, void* allEdgesDevice) : void - +{abstract} copyFromDevice(void* deviceAddress) : void <> - +{abstract} copyToDevice(void* deviceAddress) : void <> - #clearDeviceSpikeCounts(AllSpikingNeuronsDeviceProperties& allVerticesDevice) : void - +{abstract} advanceVertices(AllEdges& synapses, const EdgeIndexMap& edgeIndexMap) : void - +{abstract} integrateVertexInputs(AllEdges& edges, EdgeIndexMap& edgeIndexMap) : void - +getSpikeHistory(int index, int offIndex) : uint64_t - #{abstract} advanceNeuron(int index) : void - #{abstract} fire(int index) : void - +hasFired_ : vector - +vertexEvents_ : vector - +summationPoints_ : vector - #fAllowBackPropagation_ : bool -} - - -abstract class AllVertices { - +AllVertices() - +{abstract} ~AllVertices() - +{abstract} setupVertices() : void - +{abstract} printParameters() : void {query} - +{abstract} loadEpochInputs(uint64_t currentStep, uint64_t endStep) : void - +{abstract} loadParameters() : void - +{abstract} createAllVertices(Layout& layout) : void - +{abstract} toString(int i) : string {query} - +{abstract} registerHistoryVariables() : void - +serialize(Archive& archive) : void - #size_ : int - #fileLogger_ : log4cplus::Logger - #vertexLogger_ : log4cplus::Logger - +{abstract} allocVerticesDeviceStruct(void** allVerticesDevice) : void - +{abstract} deleteVerticesDeviceStruct(void* allVerticesDevice) : void - +{abstract} clearVertexHistory(void* allVerticesDevice) : void - +{abstract} copyToDevice(void* allVerticesDevice) : void - +{abstract} copyFromDevice(void* allVerticesDevice) : void - +{abstract} advanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : void - +{abstract} setAdvanceVerticesDeviceParams(AllEdges& edges) : void - +{abstract} integrateVertexInputs(void* allVerticesDevice, EdgeIndexMapDevice* edgeIndexMapDevice, void* allEdgesDevice) : void - +{abstract} advanceVertices(AllEdges& edges, const EdgeIndexMap* edgeIndexMap) : void - +{abstract} integrateVertexInputs(AllEdges& edges, EdgeIndexMap& edgeIndexMap) : void -} - - -class EventBuffer { - +EventBuffer(int maxEvents) - -epochStart_ : int - +getNumElementsInEpoch() : int {query} - -numElementsInEpoch_ : int - -bufferEnd_ : int - -bufferFront_ : int - +getPastEvent(int offset) : uint64_t {query} - +operator[](int i) : uint64_t {query} - -dataSeries_ : vector - +clear() : void - +insertEvent(uint64_t timeStep) : void - +resize(int maxEvents) : void - +startNewEpoch() : void -} - - -class VerticesFactory { - -VerticesFactory() - +~VerticesFactory() - -invokeCreateFunction(const string& className) : AllVertices* - +{static} getInstance() : VerticesFactory* - -createFunctions : VerticesFunctionMap - +createVertices(const string& className) : shared_ptr - -verticesInstance : shared_ptr - -registerClass(const string& className, CreateFunction function) : void -} - - -class All911Vertices { - +All911Vertices() - +{abstract} ~All911Vertices() - +{static} Create() : AllVertices* - +{abstract} setupVertices() : void <> - +{abstract} createAllVertices(Layout& layout) : void - +{abstract} loadParameters() : void - +{abstract} printParameters() : void {query} <> - +{abstract} toString(int index) : string {query} - +{abstract} loadEpochInputs(uint64_t currentStep, uint64_t endStep) : void <> - +{abstract} registerHistoryVariables() : void <> - +getQueue(int vIdx) : CircularBuffer& - +droppedCalls(int vIdx) : int& - +receivedCalls(int vIdx) : int& - +busyServers(int vIdx) : int {query} - -beginTimeHistory_ : vector> - -answerTimeHistory_ : vector> - -endTimeHistory_ : vector> - -wasAbandonedHistory_ : vector> - -queueLengthHistory_ : vector> - -utilizationHistory_ : vector> - -vertexQueues_ : vector> - -droppedCalls_ : vector - -receivedCalls_ : vector - -busyServers_ : vector - -numServers_ : vector - -numTrunks_ : vector - -redialP_ : BGFLOAT - -avgDrivingSpeed_ : BGFLOAT - -servingCall_ : vector> - -answerTime_ : vector> - -serverCountdown_ : vector> - -inputManager_ : InputManager - -advanceCALR(BGSIZE vertexIdx, All911Edges& edges911, const EdgeIndexMap& edgeIndexMap) : void - -advancePSAP(BGSIZE vertexIdx, All911Edges& edges911, const EdgeIndexMap& edgeIndexMap) : void - -advanceRESP(BGSIZE vertexIdx, All911Edges& edges911, const EdgeIndexMap& edgeIndexMap) : void - +{abstract} allocVerticesDeviceStruct(void** allVerticesDevice) : void - +{abstract} deleteVerticesDeviceStruct(void* allVerticesDevice) : void - +{abstract} copyToDevice(void* allVerticesDevice) : void - +{abstract} copyFromDevice(void* allVerticesDevice) : void - +{abstract} advanceVertices(AllEdges& edges, void* allVerticesDevice, void* allEdgesDevice, float randNoise[], EdgeIndexMapDevice* edgeIndexMapDevice) : void - +{abstract} setAdvanceVerticesDeviceParams(AllEdges& edges) : void - +{abstract} clearVertexHistory(void* allVerticesDevice) : void - +{abstract} integrateVertexInputs(void* allVerticesDevice, EdgeIndexMapDevice* edgeIndexMapDevice, void* allEdgesDevice) : void - +{abstract} advanceVertices(AllEdges& edges, const EdgeIndexMap& edgeIndexMap) : void <> - +{abstract} integrateVertexInputs(AllEdges& edges, EdgeIndexMap& edgeIndexMap) : void <> -} - - -class AllIFNeuronsDeviceProperties { - +Trefract_ : BGFLOAT* - +Vthresh_ : BGFLOAT* - +Vrest_ : BGFLOAT* - +Vreset_ : BGFLOAT* - +Vinit_ : BGFLOAT* - +Cm_ : BGFLOAT* - +Rm_ : BGFLOAT* - +Inoise_ : BGFLOAT* - +Iinject_ : BGFLOAT* - +Isyn_ : BGFLOAT* - +numStepsInRefractoryPeriod_ : int* - +C1_ : BGFLOAT* - +C2_ : BGFLOAT* - +I0_ : BGFLOAT* - +Vm_ : BGFLOAT* - +Tau_ : BGFLOAT* -} - - -class AllIZHNeuronsDeviceProperties { - +Aconst_ : BGFLOAT* - +Bconst_ : BGFLOAT* - +Cconst_ : BGFLOAT* - +Dconst_ : BGFLOAT* - +u_ : BGFLOAT* - +C3_ : BGFLOAT* -} - - -class AllSpikingNeuronsDeviceProperties { - +hasFired_ : bool* - +spikeHistory_ : uint64_t** - +bufferFront_ : int* - +bufferEnd_ : int* - +epochStart_ : int* - +numElementsInEpoch_ : int* - +summationPoints_ : BGFLOAT* -} - - -class AllVerticesDeviceProperties { - -} - - - - - -/' Inheritance relationships '/ - -.AllIFNeurons <|-- .AllIZHNeurons - - -.AllIFNeurons <|-- .AllLIFNeurons - - -.AllIFNeuronsDeviceProperties <|-- .AllIZHNeuronsDeviceProperties - - -.AllSpikingNeurons <|-- .AllIFNeurons - - -.AllSpikingNeuronsDeviceProperties <|-- .AllIFNeuronsDeviceProperties - - -.AllVertices <|-- .AllSpikingNeurons - - -.AllVertices <|-- .All911Vertices - - -.AllVerticesDeviceProperties <|-- .AllSpikingNeuronsDeviceProperties - - - - - -/' Aggregation relationships '/ - -.AllSpikingNeurons *-- .EventBuffer - - -.VerticesFactory *-- .AllVertices - - - - - - -/' Nested objects '/ - - - -@enduml diff --git a/docs/Developer/GHActions.md b/docs/Developer/GHActions.md index 23120dd01..a78af1927 100644 --- a/docs/Developer/GHActions.md +++ b/docs/Developer/GHActions.md @@ -4,21 +4,44 @@ This page is dedicated to documentation of any automation files found within the ## Doxygen and GitHub Pages Action gh-pages.yml -This action is Triggered on a monthly schedule. At the first of every month the doxygen documentation will be regenerated so that any new changes will be updated to the GitHub pages. First, it checks-out the repository using [actions/checkout](https://github.com/actions/checkout). Next, the doxygen files are regenerated using [mattnotmitt/doxygen-action](https://github.com/mattnotmitt/doxygen-action). Lastly, the gh-pages branch is updated with the new docs folder and published using the [peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) action. When this is done, the branch is committed as an orphan to keep the branch as clean as possible. +This action is triggered on a monthly schedule (at the first of every month) or manually via `workflow_dispatch` from the Actions tab. When triggered, the Doxygen documentation is regenerated and published to the `gh-pages` branch. First, it checks out the repository using [actions/checkout](https://github.com/actions/checkout). Next, the Doxygen files are regenerated using [mattnotmitt/doxygen-action](https://github.com/mattnotmitt/doxygen-action). Lastly, the `gh-pages` branch is updated with the `docs` folder and published using the [peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) action. When this is done, the branch is committed as an orphan. -## Manual GitHub Pages Action publish-gh-pages.yml +### Mermaid Diagrams _config.yml +Since mermaid is set to `true` in `_config.yml`, anytime GitHub Pages action is triggered, `_includes/head-custom.html` uses JavaScript to seek for any files that contain `mermaid` (once webpage finishes loading), then loads the Mermaid library to render diagrams directly in the browser. -The manual GitHub Pages action is a feature that came from wanting to quickly publish changes to documentation files in our docs folder. This action is activated by navigating to the actions tab, selecting the "Publish GitHub Pages Manually" workflow, then toggling the run workflow button on the desired branch. The branch to run this action on will typically be the master branch as that is the one with the most up to date documentation. Once toggled, it will take the docs files from the selected branch and publish them to the gh-pages branch as a forced orphan just like in the gh-pages.yml workflow. This action will also regenerate the Doxygen files in the same way the gh-pages.yml script does. This is done because other branches doesn't hold the Doxygen/html files and would lose this information if not regenerated during this script. +## Code Style Check format.yml -### Mermaid Diagrams _config.yml -Since mermaid is set to `true` in _config.yml, anytime GitHub Pages action is triggered, _includes/head-custom.html uses Javascript to seek for any files that contains `mermaid` (once webpage finishes loading), then loads mermaid library. +This action is triggered on pushes and pull requests that modify C++ source or header files (`.cpp`, `.h`). It executes `clang-format` to verify compliance with the repository style guidelines. + +## Unit Tests unit-tests.yml + +This action runs on pushes and pull requests (excluding documentation-only changes). It compiles the unit test binary (`make tests`) with CMake and executes `./tests` for rapid feedback on test status. + +## Regression Tests regression-tests.yml + +This action runs on pushes and pull requests (excluding documentation-only changes). It compiles the simulator binary (`make cgraphitti`) and the matrix verification utility (`compare_matrices`), executing all 10 simulation test configurations against reference output matrices. + +## Auto-Close Merged Issues close-merged-issues.yml + +This action triggers automatically whenever a pull request is merged into `SharedDevelopment` or `master`. It extracts referenced issue numbers from the PR title, branch name, and PR description (e.g. `[issue-123]`, `fixes #123`, `closes #123`, `issue-123`), checks if the issue is currently open on GitHub, and automatically closes it with a comment linking the merged pull request. -## PlantUML Action plantUML.yml +## Maintenance Scripts -The plantUML action occurs anytime a plantUML file is modified or added during a pull request or a push to the master branch. These .puml files are supposed to be located in the UML folder within the Developer folder. This action starts by checking out the repository using [actions/checkout](https://github.com/actions/checkout) with a fetch depth of 0. The next step is to grab all of the .puml files that need to be turned into images. This is done by using a basic bash command to grab all .puml files which is then piped into an awk script to parse out the unnecessary files and construct an output string with all the necessary files. The output string will look like so: "file1.puml file2.puml file3.puml file4.puml\n". This output string is then confirmed by an echo command which prints out the string to the actions terminal. Next, the .png and .svg files are generated from the .puml files in the output string using a fork of [holowinski/plantuml-github-action]. These files are placed within the diagrams folder located within the UML folder. Lastly, the local changes are committed then pushed to the remote repository using [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action). +### Stale Issue Cleanup cleanup_stale_issues.sh +The script [.github/scripts/cleanup_stale_issues.sh](https://github.com/UWB-Biocomputing/Graphitti/blob/master/.github/scripts/cleanup_stale_issues.sh) scans merged pull requests on GitHub to identify referenced issues (such as `[issue-123]`, `fixes #123`, or `closes #123`) that remain in the `OPEN` state, allowing batch closing of issues resolved by merged PRs. -[//]: # (Moving URL links to the bottom of the document for ease of updating - LS) -[//]: # (Links to repo items which exist outside of the docs folder need an absolute link.) +- **Dry Run (Preview candidate issues without modifying)**: + ```bash + ./.github/scripts/cleanup_stale_issues.sh --dry-run + ``` +- **Execute Issue Closure**: + ```bash + ./.github/scripts/cleanup_stale_issues.sh --execute + ``` +- **Options**: + - `-d, --dry-run`: Preview candidate issues without closing them (default). + - `-x, --execute`: Close the identified open issues with a reference to the merged pull request. + - `-l, --limit NUM`: Maximum number of merged PRs to inspect (default: `100`). + - `-h, --help`: Display usage help. -[holowinski/plantuml-github-action]: diff --git a/docs/Developer/GHPages.md b/docs/Developer/GHPages.md index c6e2473d0..4dcfd6d30 100644 --- a/docs/Developer/GHPages.md +++ b/docs/Developer/GHPages.md @@ -10,11 +10,11 @@ When making edits and changes to the GitHub Pages, you'll create a new feature b We use markdown files in order to render our documentation in a web browser. These files follow a relatively simple syntax of which a guide can be found [here](https://www.markdownguide.org/basic-syntax/) for. -Once you've completed your edits and changes, commit them to the branch and obtain approval for merger. The changes will not be visible from the gh-pages branch until the first of the month unless you use the publish-gh-pages.yml script which can manually publish the documentation for you. Once merged though, the changes should be seen in the master branch. Find more information on these GitHub Actions [here](GHActions.md#doxygen-and-github-pages-action-gh-pagesyml) and [here](GHActions.md#manual-github-pages-action-publish-gh-pagesyml). +Once you've completed your edits and changes, commit them to the branch and obtain approval for merger. The changes will not be visible from the gh-pages branch until the first of the month unless you manually run the gh-pages.yml workflow. Once merged though, the changes should be seen in the master branch. Find more information on this GitHub Action [here](GHActions.md#doxygen-and-github-pages-action-gh-pagesyml). ## What is the gh-pages Branch? -This has to do with how the documents for the GitHub Pages are published. When you make changes and merge them into the master branch, you'll notice those changes don't immediately show up. This is due to the fact that the GitHub action that takes care of the publication is only activated at the first of every month. Or, you can manually activate it by using the publish-gh-pages.yml workflow in the actions tab. +This has to do with how the documents for the GitHub Pages are published. When you make changes and merge them into the master branch, you'll notice those changes don't immediately show up. This is due to the fact that the GitHub action that takes care of the publication is only activated at the first of every month. Or, you can manually activate it by using the gh-pages.yml workflow in the actions tab. When this publication occurs, all the files within the docs folder are pushed into the gh-pages branch. This branch then becomes the documentation published to the GitHub Pages site. We do this for 2 reasons: @@ -27,13 +27,13 @@ You can find more on the automation of the publication by navigating to the [Git All documents used for our pages reside in the docs folder within the Graphitti repo. -`_includes` folder contains `head-custom.html`, which is resposnible for generating Mermaid diagrams. (More info here: [GHActions.md](GHActions.md#mermaid-diagrams-_configyml)) +`_includes` folder contains `head-custom.html`, which is responsible for loading Mermaid diagrams on GitHub Pages. (More info here: [GHActions.md](GHActions.md#mermaid-diagrams-_configyml)) The Developer folder is used for documentation that deals with documenting systems for developers of Graphitti. The Doxygen folder is used for documentation that refers to the Doxygen system. -The images folder is used for any images that are pulled in from developers ie. not images generated by the plantUML files or other UML files. Those UML files should be found and stored in the Developer/UML folder. +The `images` folder is used for static image assets (diagrams and figures that are not written directly in Mermaid). The Testing folder is used for documentation that refers to testing the Graphitti system. @@ -48,7 +48,7 @@ The User folder is used for documentation that general Graphitti users. Anyone w - Make sure to have a way to preview the markdown files you are making changes to - VSCode has some markdown preview enhancements provided as extensions - There should also be a built in preview functionality in the upper right hand corner of your VSCode window -- VSCode has a plantUML plug-in to help view plantUML files as images +- VSCode has Mermaid extensions (such as Markdown Preview Mermaid Support) to preview Mermaid diagrams in markdown files diff --git a/docs/Developer/SequenceDiagrams/diagrams/simObjectsCreation.png b/docs/Developer/SequenceDiagrams/diagrams/simObjectsCreation.png deleted file mode 100644 index 5278d08e4..000000000 Binary files a/docs/Developer/SequenceDiagrams/diagrams/simObjectsCreation.png and /dev/null differ diff --git a/docs/Developer/SequenceDiagrams/diagrams/simObjectsCreation.svg b/docs/Developer/SequenceDiagrams/diagrams/simObjectsCreation.svg deleted file mode 100644 index 55fc2425d..000000000 --- a/docs/Developer/SequenceDiagrams/diagrams/simObjectsCreation.svg +++ /dev/null @@ -1,30 +0,0 @@ -Simulator Object Creation Sequence DiagramSimulatorSimulatorModelFactoryFactoryLayoutAllVerticesConnectionsAllEdgesRecorderNew CPU/GPU ModelModelCreate LayoutInstantiateLayoutCreate VerticesInstantiateAllVerticesCreate ConnectionsInstantiateConnectionsCreate AllEdgesInstantiateAllEdgesCreate RecordersInstantiateRecorder \ No newline at end of file diff --git a/docs/Developer/SequenceDiagrams/diagrams/simulatorSetup.png b/docs/Developer/SequenceDiagrams/diagrams/simulatorSetup.png deleted file mode 100644 index 35fc368f5..000000000 Binary files a/docs/Developer/SequenceDiagrams/diagrams/simulatorSetup.png and /dev/null differ diff --git a/docs/Developer/SequenceDiagrams/diagrams/simulatorSetup.svg b/docs/Developer/SequenceDiagrams/diagrams/simulatorSetup.svg deleted file mode 100644 index 4ae05c136..000000000 --- a/docs/Developer/SequenceDiagrams/diagrams/simulatorSetup.svg +++ /dev/null @@ -1,29 +0,0 @@ -Simulator SetupCoreCoreSimulatorSimulatorModelModelLayoutLayoutAll VerticesAll VerticesConnectionsConnectionsAll EdgesAll EdgesRecorderRecorderSetupModel SetupGet VerticesSetup VerticesGet EdgesSetup EdgesSetup LayoutInitialize Vertices LocationsInitialize RecorderCreate All Vertices*Generate Vertex MapInitialize Starter MapCreate All Vertices \ No newline at end of file diff --git a/docs/Developer/SequenceDiagrams/diagrams/simulatorSimulate.png b/docs/Developer/SequenceDiagrams/diagrams/simulatorSimulate.png deleted file mode 100644 index ebde5e6ae..000000000 Binary files a/docs/Developer/SequenceDiagrams/diagrams/simulatorSimulate.png and /dev/null differ diff --git a/docs/Developer/SequenceDiagrams/diagrams/simulatorSimulate.svg b/docs/Developer/SequenceDiagrams/diagrams/simulatorSimulate.svg deleted file mode 100644 index e50acb0bc..000000000 --- a/docs/Developer/SequenceDiagrams/diagrams/simulatorSimulate.svg +++ /dev/null @@ -1,36 +0,0 @@ -Simulation Sequence DiagramSimulatorSimulatorModelModelLayoutLayoutAll VerticesAll VerticesConnectionsConnectionsAll EdgesAll EdgesRecorderRecorderloop[for i=0 to currentEpoch-1]Advance Epochloop[for i=0 to epochDuration-1]AdvanceGet VerticesAdvance VerticesGet EdgesAdvance EdgesUpdate Connectionsopt[if updateConnections returns true]Update Synapses WeightsCreate Edge Index MapUpdate (Compile) HistorySave ResultsSave Simulation Data \ No newline at end of file diff --git a/docs/Developer/SequenceDiagrams/diagrams/topLevelFlow.png b/docs/Developer/SequenceDiagrams/diagrams/topLevelFlow.png deleted file mode 100644 index 753ca2d7e..000000000 Binary files a/docs/Developer/SequenceDiagrams/diagrams/topLevelFlow.png and /dev/null differ diff --git a/docs/Developer/SequenceDiagrams/diagrams/topLevelFlow.svg b/docs/Developer/SequenceDiagrams/diagrams/topLevelFlow.svg deleted file mode 100644 index d065b574e..000000000 --- a/docs/Developer/SequenceDiagrams/diagrams/topLevelFlow.svg +++ /dev/null @@ -1,168 +0,0 @@ -Graphitti General Program FlowCoreCoreParamContainerSimulatorSimulatorParameterManagerParameterManagerOperationManagerOperationManagerGraphManagerGraphManagerSerializerSerializerModelModelRecorderRecorderParse Command LineParamContainerConfig FileDeserialize FileSerealize FileStimulus FileSet File NamesGet File NamesFile NamesLoad Parameter FileGet Config File NameConfig File NameLoad ParametersGet parameters from XMLParameterswidth_, height_, epochDuration_,numEpochs_, maxFiringRate_,maxEdgesPerVertex_, RNG, etc.Instantiate Simulator ObjectsDetails are in a separatesequence diagram.Register Graph PropertiesAsk all objects to register their Graph propertiesRead GraphLoad ParametersRuns loadParameters method foreach instantiated object.Methods are registered toOperationManager on instantiation.SetupDetails are in a separatesequence diagram.opt[if serialized file name available]Deserialize fileSimulateDetails are in a separatesequence diagram.opt[if serializtion file available]Serialize SynapsesFinishClean up model resourcesTerminate RecordingExit program \ No newline at end of file diff --git a/docs/Developer/SequenceDiagrams/simObjectsCreation.puml b/docs/Developer/SequenceDiagrams/simObjectsCreation.puml deleted file mode 100644 index 4d52250da..000000000 --- a/docs/Developer/SequenceDiagrams/simObjectsCreation.puml +++ /dev/null @@ -1,21 +0,0 @@ - -@startuml simObjectsCreation - -title Simulator Object Creation Sequence Diagram - -Simulator -> Model ** : New CPU/GPU Model -activate Model -Model -> Factory: Create Layout -Factory -> Layout **: Instantiate -Layout -> Factory: Create Vertices -Factory -> AllVertices **: Instantiate - -Model -> Factory: Create Connections -Factory -> Connections **: Instantiate -Connections -> Factory: Create AllEdges -Factory -> AllEdges **: Instantiate - -Model -> Factory: Create Recorders -Factory -> Recorder **: Instantiate - -@enduml diff --git a/docs/Developer/SequenceDiagrams/simRecorderFlow.puml b/docs/Developer/SequenceDiagrams/simRecorderFlow.puml deleted file mode 100644 index dd8ddc13b..000000000 --- a/docs/Developer/SequenceDiagrams/simRecorderFlow.puml +++ /dev/null @@ -1,41 +0,0 @@ -@startuml redesignedRecorderFlow - -title Redesigned Recorder Sequence Diagram - -participant "SimulationComponent" as S -participant "Recorder" as R -participant "RecordableBase" as RB - -S -> R : registerVariable(varName, recordVar, variableType, ......) -activate R -RB -> R : getDataType(): string -note left of R : add all received variables to the table - -loop Simulation Epoch - S -> RB : updateVariable() - activate RB - loop Variable Table Iteration - opt if variable is DYNAMIC - alt XmlRecorder - note right of R : Capture value and Accumulate data - RB -> R : getElement(index): variant - note left of RB : retrieve primitive data\nthat's encapsulated in a variant - R -> R : compileHistories() - - else HDF5Recorder - note right of R : Capture data and Write data to HDF5 file - R -> R : compileHistories() - end - end - end -end -loop Variable Table Iteration - opt if variable is CONSTANT - RB -> R : getElement(index): variant - R -> R : captureData() - end - deactivate RB - R -> R : saveSimData() - note right of R : Extracting the value from the variant knowing its type\nOutput data -end -@enduml \ No newline at end of file diff --git a/docs/Developer/SequenceDiagrams/simulatorSetup.puml b/docs/Developer/SequenceDiagrams/simulatorSetup.puml deleted file mode 100644 index ced222878..000000000 --- a/docs/Developer/SequenceDiagrams/simulatorSetup.puml +++ /dev/null @@ -1,19 +0,0 @@ -@startuml simulatorSetup - -title Simulator Setup - -Core -> Simulator: Setup -Simulator -> Model: Model Setup -Model -> Layout: Get Vertices -Layout -> "All Vertices": Setup Vertices -Model -> Connections: Get Edges -Connections -> "All Edges": Setup Edges -Model -> Layout: Setup Layout -Layout -> Layout: Initialize Vertices Locations -Model -> Recorder: Initialize Recorder -Model -> Model: Create All Vertices* -Model -> Layout: Generate Vertex Map -Model -> Layout: Initialize Starter Map -Model -> Layout: Create All Vertices - -@enduml diff --git a/docs/Developer/SequenceDiagrams/simulatorSimulate.puml b/docs/Developer/SequenceDiagrams/simulatorSimulate.puml deleted file mode 100644 index cf204189d..000000000 --- a/docs/Developer/SequenceDiagrams/simulatorSimulate.puml +++ /dev/null @@ -1,26 +0,0 @@ -@startuml simulatorSimulate - -title Simulation Sequence Diagram - -loop for i=0 to currentEpoch-1 - Simulator -> Simulator: Advance Epoch - loop for i=0 to epochDuration-1 - Simulator -> Model: Advance - Model -> Layout: Get Vertices - Layout -> "All Vertices": Advance Vertices - Model -> Connections: Get Edges - Connections -> "All Edges": Advance Edges - end - Model -> Connections: Update Connections - opt if updateConnections returns true - Model -> Connections: Update Synapses Weights - Model -> Connections: Create Edge Index Map - end - Model->Recorder: Update (Compile) History -end - -Simulator -> Model: Save Results -Model -> Recorder: Save Simulation Data - - -@enduml diff --git a/docs/Developer/SequenceDiagrams/topLevelFlow.puml b/docs/Developer/SequenceDiagrams/topLevelFlow.puml deleted file mode 100644 index 8a0616dd0..000000000 --- a/docs/Developer/SequenceDiagrams/topLevelFlow.puml +++ /dev/null @@ -1,79 +0,0 @@ -@startuml topLevelFlow - -title Graphitti General Program Flow - -Core -> ParamContainer **: Parse Command Line -activate ParamContainer -note right - Config File - Deserialize File - Serealize File - Stimulus File -end note - -Core -> Simulator: Set File Names -Simulator -> ParamContainer: Get File Names -ParamContainer -> Simulator: File Names -deactivate ParamContainer - -Core -> ParameterManager: Load Parameter File -ParameterManager -> Simulator: Get Config File Name -Simulator -> ParameterManager: Config File Name -Core -> Simulator: Load Parameters -Simulator -> ParameterManager: Get parameters from XML -ParameterManager -> Simulator: Parameters -note right - width_, height_, epochDuration_, - numEpochs_, maxFiringRate_, - maxEdgesPerVertex_, RNG, etc. -end note - -Core -> Simulator: Instantiate Simulator Objects -note right - Details are in a separate - sequence diagram. -end note - -Core -> OperationManager: Register Graph Properties -note right - Ask all objects to register their Graph properties -end note - -Core -> GraphManager: Read Graph - -' Expand in a separate diagram -Core -> OperationManager: Load Parameters -note right - Runs loadParameters method for - each instantiated object. - Methods are registered to - OperationManager on instantiation. -end note - -Core -> Simulator: Setup -note right - Details are in a separate - sequence diagram. -end note - - -opt if serialized file name available - Core -> Serializer: Deserialize file -end - -Core -> Simulator: Simulate -note right - Details are in a separate - sequence diagram. -end note - -opt if serializtion file available - Core -> Serializer: Serialize Synapses -end - -Core -> Simulator: Finish -Simulator -> Model: Clean up model resources -Core -> Recorder: Terminate Recording -Core -> Core: Exit program - -@enduml diff --git a/docs/Developer/StudentSetup.md b/docs/Developer/StudentSetup.md index ff2f69d9e..2ed02d2b3 100644 --- a/docs/Developer/StudentSetup.md +++ b/docs/Developer/StudentSetup.md @@ -128,7 +128,7 @@ high-performance GPU version has been compiled (`ggraphitti`). 3. Install the [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) to catch any unknowing spelling errors in the code or comments. -4. Install the [PlantUML](https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml) to create, edit, and preview PlantUML diagrams directly within Visual Studio Code. +4. Install [Markdown Preview Mermaid Support](https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid) to view and preview Mermaid diagrams directly within Visual Studio Code markdown previews. ### Building VSC can be configured to compile from CMake so that you don't have to type build and launch commands into the terminal every time you want to run. diff --git a/docs/Developer/classDiagrams.md b/docs/Developer/classDiagrams.md index a4de7e4f2..c18f4ab1a 100644 --- a/docs/Developer/classDiagrams.md +++ b/docs/Developer/classDiagrams.md @@ -1,23 +1,1698 @@ # UML Domain and Class Diagrams -## Block Diagram +## Graphitti Overview + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +namespace Core { + class cls_Core["Core"] + class cls_CPUModel["CPUModel"] + %%% class cls_EdgeIndexMap["EdgeIndexMap"] + %%% class cls_GenericFunctionNode["GenericFunctionNode"] + class cls_GPUModel["GPUModel"] + %%% class cls_IFunctionNode["IFunctionNode"] { + %%% <> + %%% } + class cls_Model["Model"] { + <> + } + class cls_OperationManager["OperationManager"] { + <> + } + class cls_ParameterManager["ParameterManager"] { + <> + } + class cls_GraphManager["GraphManager"] { + <> + } + class cls_Serializer["Serializer"] + class cls_Simulator["Simulator"] { + <> + } + %%% class cls_TwoUint64ArgFunctionNode["TwoUint64ArgFunctionNode"] +} +namespace Connections { + class cls_Connections["Connections"] { + <> + } + class cls_Connections911["Connections911"] + class cls_ConnGrowth["ConnGrowth"] + class cls_ConnStatic["ConnStatic"] +} +namespace Layout { + class cls_Layout["Layout"] { + <> + } + class cls_Layout911["Layout911"] + class cls_LayoutNeuro["LayoutNeuro"] +} +namespace Edges { + class cls_All911Edges["All911Edges"] + class cls_AllDSSynapses["AllDSSynapses"] + class cls_AllDynamicSTDPSynapses["AllDynamicSTDPSynapses"] + class cls_AllEdges["AllEdges"] { + <> + } + class cls_AllNeuroEdges["AllNeuroEdges"] { + <> + } + class cls_AllSpikingSynapses["AllSpikingSynapses"] + class cls_AllSTDPSynapses["AllSTDPSynapses"] +} +namespace Vertices { + class cls_All911Vertices["All911Vertices"] + class cls_AllIFNeurons["AllIFNeurons"] + class cls_AllIZHNeurons["AllIZHNeurons"] + class cls_AllLIFNeurons["AllLIFNeurons"] + class cls_AllSpikingNeurons["AllSpikingNeurons"] { + <> + } + class cls_AllVertices["AllVertices"] { + <> + } + class cls_EventBuffer["EventBuffer"] +} +namespace Recorders { + class cls_Hdf5Recorder["Hdf5Recorder"] + class cls_RecordableBase["RecordableBase"] { + <> + } + class cls_RecordableVector["RecordableVector"] + class cls_Recorder["Recorder"] { + <> + } + class cls_Xml911Recorder["Xml911Recorder"] + class cls_XmlRecorder["XmlRecorder"] +} +%%% Inheritance +cls_AllEdges <|-- cls_All911Edges +cls_AllVertices <|-- cls_All911Vertices +cls_AllSpikingSynapses <|-- cls_AllDSSynapses +cls_AllSTDPSynapses <|-- cls_AllDynamicSTDPSynapses +cls_AllSpikingNeurons <|-- cls_AllIFNeurons +cls_AllIFNeurons <|-- cls_AllIZHNeurons +cls_AllIFNeurons <|-- cls_AllLIFNeurons +cls_AllEdges <|-- cls_AllNeuroEdges +cls_AllVertices <|-- cls_AllSpikingNeurons +cls_AllNeuroEdges <|-- cls_AllSpikingSynapses +cls_AllSpikingSynapses <|-- cls_AllSTDPSynapses +cls_Connections <|-- cls_Connections911 +cls_Connections <|-- cls_ConnGrowth +cls_Connections <|-- cls_ConnStatic +cls_Model <|-- cls_CPUModel +%%% cls_IFunctionNode <|-- cls_GenericFunctionNode +cls_Model <|-- cls_GPUModel +cls_Recorder <|-- cls_Hdf5Recorder +cls_Layout <|-- cls_Layout911 +cls_Layout <|-- cls_LayoutNeuro +cls_RecordableBase <|-- cls_RecordableVector +%%% cls_IFunctionNode <|-- cls_TwoUint64ArgFunctionNode +cls_XmlRecorder <|-- cls_Xml911Recorder +cls_Recorder <|-- cls_XmlRecorder +%%% Composition +cls_Model o-- cls_Layout +cls_Model o-- cls_Connections +cls_Model o-- cls_Recorder +cls_Simulator o-- cls_Model +cls_Layout o-- cls_AllVertices +cls_Connections o-- cls_AllEdges +%%% Other relationships +cls_Core --> cls_Simulator : gets singleton +cls_Core --> cls_ParameterManager : gets singleton +cls_Core --> cls_OperationManager : gets singleton +cls_Core --> cls_GraphManager : gets singleton +``` + +### Graphitti Class Diagram + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +namespace Core { + class cls_Core["Core"] { + +runSimulation(...) int + -parseCommandLine(...) bool + } + class cls_CPUModel["CPUModel"] { + +finish() override + +advance() override + +updateConnections() override + +copyGPUtoCPU() override + +copyCPUtoGPU() override + } + class cls_EdgeIndexMap["EdgeIndexMap"] { + +vector~ BGSIZE ~ outgoingEdgeIndexMap_ + +vector~ BGSIZE ~ outgoingEdgeBegin_ + +vector~ BGSIZE ~ outgoingEdgeCount_ + +vector~ BGSIZE ~ incomingEdgeIndexMap_ + +vector~ BGSIZE ~ incomingEdgeBegin_ + +vector~ BGSIZE ~ incomingEdgeCount_ + +serialize(Archive &archive) + } +%%% class cls_GenericFunctionNode["GenericFunctionNode"] { +%%% -std::function~ void()~ function_ +%%% +invokeFunction(const Operations &operation) const override bool +%%% +invokeFunction(...) bool +%%% } + class cls_GPUModel["GPUModel"] { + +setupSim() override + +finish() override + +advance() override + +updateConnections() override + +copyCPUtoGPU() override + +copyGPUtoCPU() override + +printGPUEdgesPropsModel() const + +getAllEdgesDevice() AllEdgesDeviceProperties *& + +getAllVerticesDevice() AllVerticesDeviceProperties *& + #allocDeviceStruct() + #deleteDeviceStruct() + #roundUpNumberOfNoiseElements(int input) int + -allocEdgeIndexMap(int count) + -updateHistory() + -eraseEdge(AllEdges &edges, int vertexIndex, int edgeIndex) + -addEdge(...) + -createEdge(...) + } +%%% class cls_IFunctionNode["IFunctionNode"] { +%%% <> +%%% #Operations operationType_ +%%% +invokeFunction(const Operations &operation) const =0* bool +%%% +invokeFunction(...)* bool +%%% } + class cls_Model["Model"] { + <> + #unique_ptr~ Connections ~ connections_ + #unique_ptr~ Layout ~ layout_ + #unique_ptr~ Recorder ~ recorder_ + #log4cplus::Logger fileLogger_ + +getConnections() const Connections & + +getLayout() const Layout & + +getRecorder() const Recorder & + +saveResults() + +setupSim() + +finish()=0* + +updateHistory() + +advance()=0* + +updateConnections()=0* + +serialize(Archive &archive, std::uint32_t const version) + #copyGPUtoCPU()=0* + #copyCPUtoGPU()=0* + #createAllVertices() + } + class cls_OperationManager["OperationManager"] { + -list~ unique_ptr~ IFunctionNode ~ ~ functionList_ + -log4cplus::Logger logger_ + +getInstance()$ OperationManager & + +registerOperation(...) + +registerOperation(...) + +executeOperation(const Operations &operation) const + +executeOperation(...) + +operationToString(const Operations &operation) const string + +operator=(const OperationManager &operationManager)=delete OperationManager & + +operator=(OperationManager &&operationManager)=delete OperationManager & + } + class cls_Serializer["Serializer"] { + +serialize() + +deserialize() bool + -processArchive(Archive &archive, Simulator &simulator)$ bool + } + class cls_Simulator["Simulator"] { + +getInstance()$ Simulator & + +setup() + +finish() + +loadParameters() + +printParameters() const + +reset() + +simulate() + +advanceEpoch(int currentEpoch) const + +saveResults() const + +instantiateSimulatorObjects() bool + } +%%% class cls_TwoUint64ArgFunctionNode["TwoUint64ArgFunctionNode"] { +%%% -std::function~ void(uint64_t, uint64_t)~ function_ +%%% +invokeFunction(const Operations &operation) const bool +%%% +invokeFunction(...) bool +%%% } +} +namespace Connections { + class cls_Connections["Connections"] { + <> + #unique_ptr~ AllEdges ~ edges_ + #unique_ptr~ EdgeIndexMap ~ synapseIndexMap_ + #log4cplus::Logger fileLogger_ + #log4cplus::Logger edgeLogger_ + +getEdges() const AllEdges & + +getEdgeIndexMap() const EdgeIndexMap & + +createEdgeIndexMap() + +setup()=0* + +registerGraphProperties() + +loadParameters()=0* + +printParameters() const =0* + +registerHistoryVariables()=0* + +updateConnections() bool + +serialize(Archive &archive) + +updateEdgesWeights(...) + +updateEdgesWeights() + } + class cls_Connections911["Connections911"] { + -vector~ ChangedEdge ~ edgesAdded_ + -vector~ ChangedEdge ~ edgesErased_ + -RecordableVector~ int ~ verticesErased_ + +setup() override + +loadParameters() override + +printParameters() const override + +registerHistoryVariables() override + +updateConnections() override bool + +changedEdgesToXML(bool added) string + +erasedVerticesToXML() string + +erasedVerticesToXML() string + +changedEdgesToXML(bool added) string + +Create()$ Connections * + -erasePSAP(AllVertices &vertices, Layout &layout) bool + -eraseRESP(AllVertices &vertices, Layout &layout) bool + } + class cls_ConnGrowth["ConnGrowth"] { + +GrowthParams growthParams_ + +CompleteMatrix W_ + +VectorMatrix radii_ + +VectorMatrix rates_ + +CompleteMatrix delta_ + +CompleteMatrix area_ + +VectorMatrix outgrowth_ + +VectorMatrix deltaR_ + +setup() override + +loadParameters() override + +registerHistoryVariables() override + +printParameters() const override + +updateConnections() override bool + +serialize(Archive &archive) + +printRadii() const + +updateEdgesWeights(...) + +updateEdgesWeights() override + +Create()$ Connections * + -updateConns(AllVertices &neurons) + -updateFrontiers() + -updateOverlap() + } + class cls_ConnStatic["ConnStatic"] { + -RecordableVector~ int ~ sourceVertexIndexCurrentEpoch_ + -RecordableVector~ int ~ destVertexIndexCurrentEpoch_ + -RecordableVector~ BGFLOAT ~ WCurrentEpoch_ + +registerGraphProperties() override + +setup() override + +loadParameters() override + +printParameters() const override + +registerHistoryVariables() override + +getWCurrentEpoch() const const vector~ BGFLOAT ~ & + +getSourceVertexIndexCurrentEpoch() const const vector~ int ~ & + +getDestVertexIndexCurrentEpoch() const const vector~ int ~ & + +serialize(Archive &archive) + +Create()$ Connections * + } +} +namespace Layout { + class cls_Layout["Layout"] { + <> + +CompleteMatrix dist2_ + +CompleteMatrix dist_ + +vector~ int ~ probedVertexList_ + +RecordableVector~ vertexType ~ vertexTypeMap_ + #unique_ptr~ AllVertices ~ vertices_ + #log4cplus::Logger fileLogger_ + +getVertices() const AllVertices & + +setup() + +registerGraphProperties() + +registerHistoryVariables() + +loadParameters() + +printParameters() const + +generateVertexTypeMap() + +initStarterMap() + +edgType(int srcVertex, int destVertex)=0* edgeType + +getNumVertices() const int + +serialize(Archive &archive) + } + class cls_Layout911["Layout911"] { + +DeviceVector~ BGFLOAT ~ xloc_ + +DeviceVector~ BGFLOAT ~ yloc_ + +registerGraphProperties() override + +loadParameters() override + +setup() override + +printParameters() const override + +generateVertexTypeMap() override + +edgType(int srcVertex, int destVertex) override edgeType + +getDistance(int vertexId, double x, double y) double + +Create()$ Layout * + } + class cls_LayoutNeuro["LayoutNeuro"] { + +VectorMatrix xloc_ + +VectorMatrix yloc_ + +vector~ bool ~ starterMap_ + +registerGraphProperties() override + +registerHistoryVariables() override + +setup() override + +printParameters() const override + +generateVertexTypeMap() override + +initStarterMap() override + +edgType(int srcVertex, int destVertex) override edgeType + +printLayout() + +serialize(Archive &archive) + +Create()$ Layout * + } +} +namespace Edges { + class cls_All911Edges["All911Edges"] { + +vector~ unsigned char ~ isAvailable_ + +vector~ unsigned char ~ isRedial_ + +vector~ Call ~ call_ + +setupEdges() override + +createEdge(...) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +copyDeviceEdgeCountsToHost(void *allEdgesDevice) override + +advanceEdges(...) + +setAdvanceEdgesDeviceParams() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +advanceEdges(...) + +advance911Edge(BGSIZE iEdg, All911Vertices &vertices) + +advanceEdge(BGSIZE iEdg, AllVertices &vertices) override + +Create()$ AllEdges * + #allocDeviceStruct(...) + #deleteDeviceStruct(All911EdgesDeviceProperties &allEdgesDeviceProps) + #copyHostToDevice(...) + #copyDeviceToHost(All911EdgesDeviceProperties &allEdgesDeviceProps) + } + class cls_AllDSSynapses["AllDSSynapses"] { + +vector~ uint64_t ~ lastSpike_ + +vector~ BGFLOAT ~ r_ + +vector~ BGFLOAT ~ u_ + +vector~ BGFLOAT ~ D_ + +vector~ BGFLOAT ~ U_ + +vector~ BGFLOAT ~ F_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +printParameters() const override + +createEdge(...) + +printSynapsesProps() const override + +serialize(Archive &archive) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyHostToDevice(...) + #copyDeviceToHost(...) + #changePSR(BGSIZE iEdg, BGFLOAT deltaT) override + } + class cls_AllDynamicSTDPSynapses["AllDynamicSTDPSynapses"] { + +vector~ uint64_t ~ lastSpike_ + +vector~ BGFLOAT ~ r_ + +vector~ BGFLOAT ~ u_ + +vector~ BGFLOAT ~ D_ + +vector~ BGFLOAT ~ U_ + +vector~ BGFLOAT ~ F_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +printParameters() const override + +createEdge(...) + +printSynapsesProps() const override + +serialize(Archive &archive) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyHostToDevice(...) + #copyDeviceToHost(...) + #changePSR(BGSIZE iEdg, BGFLOAT deltaT) + } + class cls_AllEdges["AllEdges"] { + <> + #log4cplus::Logger fileLogger_ + #log4cplus::Logger edgeLogger_ + +vector~ int ~ sourceVertexIndex_ + +vector~ int ~ destVertexIndex_ + +vector~ BGFLOAT ~ W_ + +vector~ edgeType ~ type_ + +vector~ unsigned char ~ inUse_ + +vector~ BGSIZE ~ edgeCounts_ + +setupEdges() + +loadParameters() + +printParameters() const + +addEdge(...) BGSIZE + +createEdge(...)* + +createEdgeIndexMap(EdgeIndexMap &edgeIndexMap) + +serialize(Archive &archive) + +allocEdgeDeviceStruct()=0* + +allocEdgeDeviceStruct(...)* + +deleteEdgeDeviceStruct()=0* + +copyEdgeHostToDevice()=0* + +copyEdgeHostToDevice(...)* + +copyEdgeDeviceToHost()=0* + +copyDeviceEdgeCountsToHost(void *allEdgesDevice)=0* + +advanceEdges(...)* + +setAdvanceEdgesDeviceParams()=0* + +printGPUEdgesProps(void *allEdgesDeviceProps) const =0* + +advanceEdges(...) + +advanceEdge(BGSIZE iEdg, AllVertices &vertices)=0* + +eraseEdge(int vertexIndex, BGSIZE iEdg) + #setupEdges(int numVertices, int maxEdges) + #readEdge(istream &input, BGSIZE iEdg) + #writeEdge(ostream &output, BGSIZE iEdg) const + #edgeOrdinalToType(int typeOrdinal) edgeType + } + class cls_AllNeuroEdges["AllNeuroEdges"] { + <> + +vector~ BGFLOAT ~ psr_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) + +edgSign(const edgeType type) int + +printSynapsesProps() const + +serialize(Archive &archive) + +outputWeights(int epochNum)=0* + +setEdgeClassID()=0* + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + } + class cls_AllSpikingSynapses["AllSpikingSynapses"] { + +vector~ BGFLOAT ~ decay_ + +vector~ BGFLOAT ~ tau_ + +vector~ int ~ totalDelay_ + +vector~ uint32_t ~ delayQueue_ + +vector~ int ~ delayIndex_ + +vector~ int ~ delayQueueLength_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +loadParameters() override + +printParameters() const override + +createEdge(...) + +allowBackPropagation() bool + +printSynapsesProps() const + +serialize(Archive &archive) + +outputWeights(int epochNum) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +copyDeviceEdgeCountsToHost(void *allEdgesDevice) override + +advanceEdges(...) + +setAdvanceEdgesDeviceParams() override + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +copyDeviceEdgeSumIdxToHost(void *allEdgesDevice) + +copyDeviceEdgeWeightsToHost(void *allEdgesDevice) + +advanceEdge(BGSIZE iEdg, AllVertices &neurons) override + +preSpikeHit(BGSIZE iEdg) + +postSpikeHit(BGSIZE iEdg) + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) + #initSpikeQueue(BGSIZE iEdg) + #updateDecay(BGSIZE iEdg, BGFLOAT deltaT) bool + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyHostToDevice(...) + #copyDeviceToHost(...) + #isSpikeQueue(BGSIZE iEdg) bool + #changePSR(BGSIZE iEdg, BGFLOAT deltaT) + } + class cls_AllSTDPSynapses["AllSTDPSynapses"] { + +vector~ int ~ totalDelayPost_ + +vector~ uint32_t ~ delayQueuePost_ + +vector~ int ~ delayIndexPost_ + +vector~ int ~ delayQueuePostLength_ + +vector~ BGFLOAT ~ tauspost_ + +vector~ BGFLOAT ~ tauspre_ + +vector~ BGFLOAT ~ taupos_ + +vector~ BGFLOAT ~ tauneg_ + +vector~ BGFLOAT ~ STDPgap_ + +vector~ BGFLOAT ~ Wex_ + +vector~ BGFLOAT ~ Aneg_ + +vector~ BGFLOAT ~ Apos_ + +vector~ BGFLOAT ~ mupos_ + +vector~ BGFLOAT ~ muneg_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +allowBackPropagation() override bool + +loadParameters() override + +printParameters() const override + +createEdge(...) + +printSynapsesProps() const override + +serialize(Archive &archive) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +advanceEdges(...) + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +advanceEdge(BGSIZE iEdg, AllVertices &neurons) override + +postSpikeHit(BGSIZE iEdg) override + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #initSpikeQueue(BGSIZE iEdg) override + #allocDeviceStruct(...) + #deleteDeviceStruct(AllSTDPSynapsesDeviceProperties &allEdgesDevice) + #copyHostToDevice(...) + #copyDeviceToHost(AllSTDPSynapsesDeviceProperties &allEdgesDevice) + #isSpikeQueuePost(BGSIZE iEdg) bool + #synapticWeightModification(BGSIZE iEdg, BGFLOAT edgeWeight, double delta) BGFLOAT + -stdpLearning(...) + } +} +namespace Vertices { + class cls_All911Vertices["All911Vertices"] { + +vector~ int ~ vertexType_ + +vector~ EventBuffer~ uint64_t ~ ~ beginTimeHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ answerTimeHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ endTimeHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ wasAbandonedHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ queueLengthHistory_ + +vector~ EventBuffer~ float ~ ~ utilizationHistory_ + +vector~ CircularBuffer~ Call ~ ~ vertexQueues_ + +RecordableVector~ int ~ droppedCalls_ + +RecordableVector~ int ~ receivedCalls_ + +vector~ int ~ busyServers_ + +RecordableVector~ int ~ numServers_ + +RecordableVector~ int ~ numTrunks_ + +vector~ vector~ Call ~ ~ servingCall_ + +vector~ vector~ uint64_t ~ ~ answerTime_ + +vector~ vector~ int ~ ~ serverCountdown_ + +InputManager~ Call ~ inputManager_ + +vector~ int ~ vertexIdToNoiseIndex_ + +setupVertices() override + +createAllVertices(Layout &layout) + +loadParameters() + +printParameters() const override + +toString(int index) const string + +loadEpochInputsToVertices(uint64_t currentStep, uint64_t endStep) override + +registerHistoryVariables() override + +getQueue(int vIdx) CircularBuffer~ Call ~ & + +droppedCalls(int vIdx) int & + +receivedCalls(int vIdx) int & + +busyServers(int vIdx) const int + +allocVerticesDeviceStruct() override + +deleteVerticesDeviceStruct() override + +copyToDevice() override + +copyFromDevice() override + +advanceVertices(...) + +setAdvanceVerticesDeviceParams(AllEdges &edges) override + +clearVertexHistory(void *allVerticesDevice) override + +integrateVertexInputs(...) + +copyEpochInputsToDevice() override + +getNumberOfVerticesNeedingDeviceNoise() const override int + +advanceVertices(...) + +integrateVertexInputs(...) + +Create()$ AllVertices * + #getEdgeToClosestResponder(const Call &call, BGSIZE vertexIdx) BGSIZE + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyVertexQueuesToDevice(...) + #copyVertexQueuesFromDevice(...) + #copyServingCallToDevice(...) + #copyServingCallFromDevice(...) + -advanceCALR(...) + -advancePSAP(...) + -advanceRESP(...) + } + class cls_AllIFNeurons["AllIFNeurons"] { + +DeviceVector~ BGFLOAT ~ Trefract_ + +DeviceVector~ BGFLOAT ~ Vthresh_ + +DeviceVector~ BGFLOAT ~ Vrest_ + +DeviceVector~ BGFLOAT ~ Vreset_ + +DeviceVector~ BGFLOAT ~ Vinit_ + +DeviceVector~ BGFLOAT ~ Cm_ + +DeviceVector~ BGFLOAT ~ Rm_ + +DeviceVector~ BGFLOAT ~ Inoise_ + +DeviceVector~ BGFLOAT ~ Iinject_ + +DeviceVector~ BGFLOAT ~ Isyn_ + +DeviceVector~ int ~ numStepsInRefractoryPeriod_ + +DeviceVector~ BGFLOAT ~ C1_ + +DeviceVector~ BGFLOAT ~ C2_ + +DeviceVector~ BGFLOAT ~ I0_ + +DeviceVector~ BGFLOAT ~ Vm_ + +DeviceVector~ BGFLOAT ~ Tau_ + +setupVertices() override + +loadParameters() + +printParameters() const + +createAllVertices(Layout &layout) + +toString(int index) const string + +deserialize(istream &input) + +serialize(ostream &output) const + +serialize(Archive &archive) + +advanceVertices(...) + +allocVerticesDeviceStruct() + +deleteVerticesDeviceStruct() + +clearVertexHistory(void *allVerticesDevice) override + +copyFromDevice() override + +copyToDevice() override + #allocDeviceStruct(AllIFNeuronsDeviceProperties &allVerticesDevice) + #deleteDeviceStruct(AllIFNeuronsDeviceProperties &allVerticesDevice) + #copyDeviceToHost(AllIFNeuronsDeviceProperties &allVerticesDevice) + #createNeuron(int neuronIndex, Layout &layout) + #setNeuronDefaults(int index) + #initNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) + #readNeuron(istream &input, int i) + #writeNeuron(ostream &output, int i) const + } + class cls_AllIZHNeurons["AllIZHNeurons"] { + +DeviceVector~ BGFLOAT ~ Aconst_ + +DeviceVector~ BGFLOAT ~ Bconst_ + +DeviceVector~ BGFLOAT ~ Cconst_ + +DeviceVector~ BGFLOAT ~ Dconst_ + +DeviceVector~ BGFLOAT ~ u_ + +DeviceVector~ BGFLOAT ~ C3_ + +setupVertices() override + +printParameters() const override + +createAllVertices(Layout &layout) override + +toString(int index) const override string + +deserialize(istream &input) override + +serialize(ostream &output) const override + +serialize(Archive &archive) + +advanceVertices(...) + +allocVerticesDeviceStruct() override + +deleteVerticesDeviceStruct() override + +clearVertexHistory(void *allVerticesDevice) override + +copyFromDevice() override + +copyToDevice() override + +Create()$ AllVertices * + #allocDeviceStruct(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #deleteDeviceStruct(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #copyHostToDevice(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #copyDeviceToHost(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #advanceNeuron(int index) + #fire(int index) + #createNeuron(int neuronIndex, Layout &layout) + #setNeuronDefaults(int index) + #initNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) override + #readNeuron(istream &input, int index) + #writeNeuron(ostream &output, int index) const + } + class cls_AllLIFNeurons["AllLIFNeurons"] { + +printParameters() const override + +serialize(Archive &archive) + +advanceVertices(...) + +Create()$ AllVertices * + #advanceNeuron(int index) + #fire(int index) + } + class cls_AllSpikingNeurons["AllSpikingNeurons"] { + <> + +DeviceVector~ bool ~ hasFired_ + +vector~ EventBuffer~ uint64_t ~ ~ vertexEvents_ + +DeviceVector~ BGFLOAT ~ summationPoints_ + +setupVertices() override + +clearSpikeCounts() + +registerHistoryVariables() override + +serialize(Archive &archive) + +setAdvanceVerticesDeviceParams(AllEdges &synapses) + +copyFromDevice() override + +copyToDevice() override + +integrateVertexInputs(...) + +advanceVertices(...) + +integrateVertexInputs(AllEdges &edges, EdgeIndexMap &edgeIndexMap) + +getSpikeHistory(int index, int offIndex) uint64_t + #clearDeviceSpikeCounts(...) + #advanceNeuron(int index)=0* + #fire(int index) + } + class cls_AllVertices["AllVertices"] { + <> + #log4cplus::Logger fileLogger_ + #log4cplus::Logger vertexLogger_ + +setupVertices() + +printParameters() const + +loadEpochInputs(uint64_t currentStep, uint64_t endStep) + +loadEpochInputsToVertices(uint64_t currentStep, uint64_t endStep) + +loadParameters()=0* + +createAllVertices(Layout &layout)=0* + +toString(int i) const =0* string + +registerHistoryVariables()=0* + +serialize(Archive &archive) + +allocVerticesDeviceStruct()=0* + +deleteVerticesDeviceStruct()=0* + +clearVertexHistory(void *allVerticesDevice)=0* + +copyToDevice()=0* + +copyFromDevice()=0* + +copyEpochInputsToDevice() + +advanceVertices(...)* + +setAdvanceVerticesDeviceParams(AllEdges &edges)=0* + +integrateVertexInputs(...)* + +getNumberOfVerticesNeedingDeviceNoise() const int + +advanceVertices(...)* + +integrateVertexInputs(AllEdges &edges, EdgeIndexMap &edgeIndexMap)=0* + } + class cls_EventBuffer["EventBuffer"] { + +getBufferFront() const int + +getBufferEnd() const int + +getEpochStart() const int + +getNumElementsInEpoch() const int + +setBufferFront(int bufferFront) + +setBufferEnd(int bufferEnd) + +setEpochStart(int epochStart) + +setNumElementsInEpoch(int numElementsInEpoch) + +resize(int maxEvents) + +operator[](int i) const T + +serialize(Archive &archive) + } +} +namespace Recorders { + class cls_Hdf5Recorder["Hdf5Recorder"] { + +init() override + +term() override + +compileHistories() override + +saveSimData() override + +printParameters() override + +registerVariable(...) + +registerVariable(...) + +Create()$ Recorder * + } + class cls_RecordableBase["RecordableBase"] { + <> + #std::string basicDataType_ + +getNumElements() const =0* int + +getElement(int index) const =0* variantTypes + +startNewEpoch()=0* + +setDataType()=0* + +getDataType() const =0* const string & + +serialize(Archive &archive) + } + class cls_RecordableVector["RecordableVector"] { + #vector~ T ~ dataSeries_ + +setDataType() override + +getDataType() const override const std::string & + +getNumElements() const override int + +startNewEpoch() override + +getElement(int index) const override variantTypes + +resize(int maxEvents) + +assign(size_t size, const T &value) + +operator[](int index) T & + +push_back(const T &value) + +getVector() const const std::vector~ T ~ & + +data() T * + +data() const const T * + +serialize(Archive &archive) + } + class cls_Recorder["Recorder"] { + <> + #string resultFileName_ + #log4cplus::Logger fileLogger_ + +init()=0* + +term()=0* + +compileHistories()=0* + +saveSimData()=0* + +printParameters()=0* + +registerVariable(...)* + +registerVariable(...)* + #getStarterNeuronMatrix(...)* + } + class cls_Xml911Recorder["Xml911Recorder"] { + +compileHistories() override + +saveSimData() override + +printParameters() override + +Create()$ Recorder * + } + class cls_XmlRecorder["XmlRecorder"] { + #vector~ singleVariableInfo ~ variableTable_ + #ofstream resultOut_ + +init() override + +term() override + +compileHistories() override + +saveSimData() override + +printParameters() override + +registerVariable(...) + +registerVariable(...) + +Create()$ Recorder * + #toXML(...) string + #getStarterNeuronMatrix(...) + } +} +cls_AllEdges <|-- cls_All911Edges +cls_AllVertices <|-- cls_All911Vertices +cls_AllSpikingSynapses <|-- cls_AllDSSynapses +cls_AllSTDPSynapses <|-- cls_AllDynamicSTDPSynapses +cls_AllSpikingNeurons <|-- cls_AllIFNeurons +cls_AllIFNeurons <|-- cls_AllIZHNeurons +cls_AllIFNeurons <|-- cls_AllLIFNeurons +cls_AllEdges <|-- cls_AllNeuroEdges +cls_AllVertices <|-- cls_AllSpikingNeurons +cls_AllNeuroEdges <|-- cls_AllSpikingSynapses +cls_AllSpikingSynapses <|-- cls_AllSTDPSynapses +cls_Connections <|-- cls_Connections911 +cls_Connections <|-- cls_ConnGrowth +cls_Connections <|-- cls_ConnStatic +cls_Model <|-- cls_CPUModel +%%% cls_IFunctionNode <|-- cls_GenericFunctionNode +cls_Model <|-- cls_GPUModel +cls_Recorder <|-- cls_Hdf5Recorder +cls_Layout <|-- cls_Layout911 +cls_Layout <|-- cls_LayoutNeuro +cls_RecordableBase <|-- cls_RecordableVector +%%% cls_IFunctionNode <|-- cls_TwoUint64ArgFunctionNode +cls_XmlRecorder <|-- cls_Xml911Recorder +cls_Recorder <|-- cls_XmlRecorder +%%% Composition +cls_Model o-- cls_Layout +cls_Model o-- cls_Connections +cls_Model o-- cls_Recorder +cls_Simulator o-- cls_Model +cls_Layout o-- cls_AllVertices +cls_Connections o-- cls_AllEdges +%%% Other relationships +cls_Core --> cls_Simulator : gets singleton +cls_Core --> cls_OperationManager : gets singleton +``` + + -This diagram presents an overview of graphitti's domain entities. -- [Graphitti block diagram](ClassDiagrams/diagrams/GraphittiDomainDiagram.png) ## Class Diagrams -This is a list of class diagrams starting with an overall view of Graphitti, then -partitioning it into the different components. - -- [Graphitti class diagram](ClassDiagrams/diagrams/GraphittiClassDiagram.png) -- [Graphitti core class diagram](ClassDiagrams/diagrams/GraphittiCoreClassDiagram.png) -- [Connections class diagram](ClassDiagrams/diagrams/ConnectionsClassDiagram.png) -- [Layout class diagram](ClassDiagrams/diagrams/LayoutClassDiagram.png) -- [Edges class diagram](ClassDiagrams/diagrams/EdgesClassDiagram.png) -- [Vertices class diagram](ClassDiagrams/diagrams/VerticesClassDiagram.png) -- [Recorder class diagram](ClassDiagrams/diagrams/RecorderClassDiagram.png) -- [OperationManager class diagram](ClassDiagrams/diagrams/OperationManagerClassDiagram.png) +This is a list of class diagrams starting with a detailed class diagram for all classes in Graphitti, then breaking it down into the different components. + + +### Connections Class Diagram + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +class Connections { + <> + #unique_ptr~ AllEdges ~ edges_ + #unique_ptr~ EdgeIndexMap ~ synapseIndexMap_ + #log4cplus::Logger fileLogger_ + #log4cplus::Logger edgeLogger_ + +getEdges() const AllEdges & + +getEdgeIndexMap() const EdgeIndexMap & + +createEdgeIndexMap() + +setup()=0* + +registerGraphProperties() + +loadParameters()=0* + +printParameters() const =0* + +registerHistoryVariables()=0* + +updateConnections() bool + +serialize(Archive &archive) + +updateEdgesWeights(...) + +updateEdgesWeights() +} +class Connections911 { + -vector~ ChangedEdge ~ edgesAdded_ + -vector~ ChangedEdge ~ edgesErased_ + -RecordableVector~ int ~ verticesErased_ + +setup() override + +loadParameters() override + +printParameters() const override + +registerHistoryVariables() override + +updateConnections() override bool + +changedEdgesToXML(bool added) string + +erasedVerticesToXML() string + +erasedVerticesToXML() string + +changedEdgesToXML(bool added) string + +Create()$ Connections * + -erasePSAP(AllVertices &vertices, Layout &layout) bool + -eraseRESP(AllVertices &vertices, Layout &layout) bool +} +class ConnGrowth { + +GrowthParams growthParams_ + +CompleteMatrix W_ + +VectorMatrix radii_ + +VectorMatrix rates_ + +CompleteMatrix delta_ + +CompleteMatrix area_ + +VectorMatrix outgrowth_ + +VectorMatrix deltaR_ + +setup() override + +loadParameters() override + +registerHistoryVariables() override + +printParameters() const override + +updateConnections() override bool + +serialize(Archive &archive) + +printRadii() const + +updateEdgesWeights(...) + +updateEdgesWeights() override + +Create()$ Connections * + -updateConns(AllVertices &neurons) + -updateFrontiers() + -updateOverlap() +} +class ConnStatic { + -RecordableVector~ int ~ sourceVertexIndexCurrentEpoch_ + -RecordableVector~ int ~ destVertexIndexCurrentEpoch_ + -RecordableVector~ BGFLOAT ~ WCurrentEpoch_ + +registerGraphProperties() override + +setup() override + +loadParameters() override + +printParameters() const override + +registerHistoryVariables() override + +getWCurrentEpoch() const const vector~ BGFLOAT ~ & + +getSourceVertexIndexCurrentEpoch() const const vector~ int ~ & + +getDestVertexIndexCurrentEpoch() const const vector~ int ~ & + +serialize(Archive &archive) + +Create()$ Connections * +} +Connections <|-- Connections911 +Connections <|-- ConnGrowth +Connections <|-- ConnStatic +``` + + + +### Layout Class Diagram + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +class Layout { + <> + +CompleteMatrix dist2_ + +CompleteMatrix dist_ + +vector~ int ~ probedVertexList_ + +RecordableVector~ vertexType ~ vertexTypeMap_ + #unique_ptr~ AllVertices ~ vertices_ + #log4cplus::Logger fileLogger_ + +getVertices() const AllVertices & + +setup() + +registerGraphProperties() + +registerHistoryVariables() + +loadParameters() + +printParameters() const + +generateVertexTypeMap() + +initStarterMap() + +edgType(int srcVertex, int destVertex)=0* edgeType + +getNumVertices() const int + +serialize(Archive &archive) +} +class Layout911 { + +DeviceVector~ BGFLOAT ~ xloc_ + +DeviceVector~ BGFLOAT ~ yloc_ + +registerGraphProperties() override + +loadParameters() override + +setup() override + +printParameters() const override + +generateVertexTypeMap() override + +edgType(int srcVertex, int destVertex) override edgeType + +getDistance(int vertexId, double x, double y) double + +Create()$ Layout * +} +class LayoutNeuro { + +VectorMatrix xloc_ + +VectorMatrix yloc_ + +vector~ bool ~ starterMap_ + +registerGraphProperties() override + +registerHistoryVariables() override + +setup() override + +printParameters() const override + +generateVertexTypeMap() override + +initStarterMap() override + +edgType(int srcVertex, int destVertex) override edgeType + +printLayout() + +serialize(Archive &archive) + +Create()$ Layout * +} +Layout <|-- Layout911 +Layout <|-- LayoutNeuro +``` + + + +### Edges Class Diagram + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +class All911Edges { + +vector~ unsigned char ~ isAvailable_ + +vector~ unsigned char ~ isRedial_ + +vector~ Call ~ call_ + +setupEdges() override + +createEdge(...) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +copyDeviceEdgeCountsToHost(void *allEdgesDevice) override + +advanceEdges(...) + +setAdvanceEdgesDeviceParams() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +advanceEdges(...) + +advance911Edge(BGSIZE iEdg, All911Vertices &vertices) + +advanceEdge(BGSIZE iEdg, AllVertices &vertices) override + +Create()$ AllEdges * + #allocDeviceStruct(...) + #deleteDeviceStruct(All911EdgesDeviceProperties &allEdgesDeviceProps) + #copyHostToDevice(...) + #copyDeviceToHost(All911EdgesDeviceProperties &allEdgesDeviceProps) +} +class AllDSSynapses { + +vector~ uint64_t ~ lastSpike_ + +vector~ BGFLOAT ~ r_ + +vector~ BGFLOAT ~ u_ + +vector~ BGFLOAT ~ D_ + +vector~ BGFLOAT ~ U_ + +vector~ BGFLOAT ~ F_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +printParameters() const override + +createEdge(...) + +printSynapsesProps() const override + +serialize(Archive &archive) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyHostToDevice(...) + #copyDeviceToHost(...) + #changePSR(BGSIZE iEdg, BGFLOAT deltaT) override +} +class AllDynamicSTDPSynapses { + +vector~ uint64_t ~ lastSpike_ + +vector~ BGFLOAT ~ r_ + +vector~ BGFLOAT ~ u_ + +vector~ BGFLOAT ~ D_ + +vector~ BGFLOAT ~ U_ + +vector~ BGFLOAT ~ F_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +printParameters() const override + +createEdge(...) + +printSynapsesProps() const override + +serialize(Archive &archive) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyHostToDevice(...) + #copyDeviceToHost(...) + #changePSR(BGSIZE iEdg, BGFLOAT deltaT) +} +class AllEdges { + <> + #log4cplus::Logger fileLogger_ + #log4cplus::Logger edgeLogger_ + +vector~ int ~ sourceVertexIndex_ + +vector~ int ~ destVertexIndex_ + +vector~ BGFLOAT ~ W_ + +vector~ edgeType ~ type_ + +vector~ unsigned char ~ inUse_ + +vector~ BGSIZE ~ edgeCounts_ + +setupEdges() + +loadParameters() + +printParameters() const + +addEdge(...) BGSIZE + +createEdge(...)* + +createEdgeIndexMap(EdgeIndexMap &edgeIndexMap) + +serialize(Archive &archive) + +allocEdgeDeviceStruct()=0* + +allocEdgeDeviceStruct(...)* + +deleteEdgeDeviceStruct()=0* + +copyEdgeHostToDevice()=0* + +copyEdgeHostToDevice(...)* + +copyEdgeDeviceToHost()=0* + +copyDeviceEdgeCountsToHost(void *allEdgesDevice)=0* + +advanceEdges(...)* + +setAdvanceEdgesDeviceParams()=0* + +printGPUEdgesProps(void *allEdgesDeviceProps) const =0* + +advanceEdges(...) + +advanceEdge(BGSIZE iEdg, AllVertices &vertices)=0* + +eraseEdge(int vertexIndex, BGSIZE iEdg) + #setupEdges(int numVertices, int maxEdges) + #readEdge(istream &input, BGSIZE iEdg) + #writeEdge(ostream &output, BGSIZE iEdg) const + #edgeOrdinalToType(int typeOrdinal) edgeType +} +class AllNeuroEdges { + <> + +vector~ BGFLOAT ~ psr_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) + +edgSign(const edgeType type) int + +printSynapsesProps() const + +serialize(Archive &archive) + +outputWeights(int epochNum)=0* + +setEdgeClassID()=0* + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override +} +class AllSpikingSynapses { + +vector~ BGFLOAT ~ decay_ + +vector~ BGFLOAT ~ tau_ + +vector~ int ~ totalDelay_ + +vector~ uint32_t ~ delayQueue_ + +vector~ int ~ delayIndex_ + +vector~ int ~ delayQueueLength_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +loadParameters() override + +printParameters() const override + +createEdge(...) + +allowBackPropagation() bool + +printSynapsesProps() const + +serialize(Archive &archive) + +outputWeights(int epochNum) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +copyDeviceEdgeCountsToHost(void *allEdgesDevice) override + +advanceEdges(...) + +setAdvanceEdgesDeviceParams() override + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +copyDeviceEdgeSumIdxToHost(void *allEdgesDevice) + +copyDeviceEdgeWeightsToHost(void *allEdgesDevice) + +advanceEdge(BGSIZE iEdg, AllVertices &neurons) override + +preSpikeHit(BGSIZE iEdg) + +postSpikeHit(BGSIZE iEdg) + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) + #initSpikeQueue(BGSIZE iEdg) + #updateDecay(BGSIZE iEdg, BGFLOAT deltaT) bool + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyHostToDevice(...) + #copyDeviceToHost(...) + #isSpikeQueue(BGSIZE iEdg) bool + #changePSR(BGSIZE iEdg, BGFLOAT deltaT) +} +class AllSTDPSynapses { + +vector~ int ~ totalDelayPost_ + +vector~ uint32_t ~ delayQueuePost_ + +vector~ int ~ delayIndexPost_ + +vector~ int ~ delayQueuePostLength_ + +vector~ BGFLOAT ~ tauspost_ + +vector~ BGFLOAT ~ tauspre_ + +vector~ BGFLOAT ~ taupos_ + +vector~ BGFLOAT ~ tauneg_ + +vector~ BGFLOAT ~ STDPgap_ + +vector~ BGFLOAT ~ Wex_ + +vector~ BGFLOAT ~ Aneg_ + +vector~ BGFLOAT ~ Apos_ + +vector~ BGFLOAT ~ mupos_ + +vector~ BGFLOAT ~ muneg_ + +setupEdges() override + +resetEdge(BGSIZE iEdg, BGFLOAT deltaT) override + +allowBackPropagation() override bool + +loadParameters() override + +printParameters() const override + +createEdge(...) + +printSynapsesProps() const override + +serialize(Archive &archive) + +allocEdgeDeviceStruct() override + +allocEdgeDeviceStruct(...) + +deleteEdgeDeviceStruct() override + +copyEdgeHostToDevice() override + +copyEdgeHostToDevice(...) + +copyEdgeDeviceToHost() override + +advanceEdges(...) + +setEdgeClassID() override + +printGPUEdgesProps(void *allEdgesDeviceProps) const override + +advanceEdge(BGSIZE iEdg, AllVertices &neurons) override + +postSpikeHit(BGSIZE iEdg) override + +Create()$ AllEdges * + #setupEdges(int numVertices, int maxEdges) override + #readEdge(istream &input, BGSIZE iEdg) override + #writeEdge(ostream &output, BGSIZE iEdg) const override + #initSpikeQueue(BGSIZE iEdg) override + #allocDeviceStruct(...) + #deleteDeviceStruct(AllSTDPSynapsesDeviceProperties &allEdgesDevice) + #copyHostToDevice(...) + #copyDeviceToHost(AllSTDPSynapsesDeviceProperties &allEdgesDevice) + #isSpikeQueuePost(BGSIZE iEdg) bool + #synapticWeightModification(BGSIZE iEdg, BGFLOAT edgeWeight, double delta) BGFLOAT + -stdpLearning(...) +} +AllEdges <|-- All911Edges +AllSpikingSynapses <|-- AllDSSynapses +AllSTDPSynapses <|-- AllDynamicSTDPSynapses +AllEdges <|-- AllNeuroEdges +AllNeuroEdges <|-- AllSpikingSynapses +AllSpikingSynapses <|-- AllSTDPSynapses +``` + + + +### Vertices Class Diagram + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +class All911Vertices { + +vector~ int ~ vertexType_ + +vector~ EventBuffer~ uint64_t ~ ~ beginTimeHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ answerTimeHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ endTimeHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ wasAbandonedHistory_ + +vector~ EventBuffer~ uint64_t ~ ~ queueLengthHistory_ + +vector~ EventBuffer~ float ~ ~ utilizationHistory_ + +vector~ CircularBuffer~ Call ~ ~ vertexQueues_ + +RecordableVector~ int ~ droppedCalls_ + +RecordableVector~ int ~ receivedCalls_ + +vector~ int ~ busyServers_ + +RecordableVector~ int ~ numServers_ + +RecordableVector~ int ~ numTrunks_ + +vector~ vector~ Call ~ ~ servingCall_ + +vector~ vector~ uint64_t ~ ~ answerTime_ + +vector~ vector~ int ~ ~ serverCountdown_ + +InputManager~ Call ~ inputManager_ + +vector~ int ~ vertexIdToNoiseIndex_ + +setupVertices() override + +createAllVertices(Layout &layout) + +loadParameters() + +printParameters() const override + +toString(int index) const string + +loadEpochInputsToVertices(uint64_t currentStep, uint64_t endStep) override + +registerHistoryVariables() override + +getQueue(int vIdx) CircularBuffer~ Call ~ & + +droppedCalls(int vIdx) int & + +receivedCalls(int vIdx) int & + +busyServers(int vIdx) const int + +allocVerticesDeviceStruct() override + +deleteVerticesDeviceStruct() override + +copyToDevice() override + +copyFromDevice() override + +advanceVertices(...) + +setAdvanceVerticesDeviceParams(AllEdges &edges) override + +clearVertexHistory(void *allVerticesDevice) override + +integrateVertexInputs(...) + +copyEpochInputsToDevice() override + +getNumberOfVerticesNeedingDeviceNoise() const override int + +advanceVertices(...) + +integrateVertexInputs(...) + +Create()$ AllVertices * + #getEdgeToClosestResponder(const Call &call, BGSIZE vertexIdx) BGSIZE + #allocDeviceStruct(...) + #deleteDeviceStruct(...) + #copyVertexQueuesToDevice(...) + #copyVertexQueuesFromDevice(...) + #copyServingCallToDevice(...) + #copyServingCallFromDevice(...) + -advanceCALR(...) + -advancePSAP(...) + -advanceRESP(...) +} +class AllIFNeurons { + +DeviceVector~ BGFLOAT ~ Trefract_ + +DeviceVector~ BGFLOAT ~ Vthresh_ + +DeviceVector~ BGFLOAT ~ Vrest_ + +DeviceVector~ BGFLOAT ~ Vreset_ + +DeviceVector~ BGFLOAT ~ Vinit_ + +DeviceVector~ BGFLOAT ~ Cm_ + +DeviceVector~ BGFLOAT ~ Rm_ + +DeviceVector~ BGFLOAT ~ Inoise_ + +DeviceVector~ BGFLOAT ~ Iinject_ + +DeviceVector~ BGFLOAT ~ Isyn_ + +DeviceVector~ int ~ numStepsInRefractoryPeriod_ + +DeviceVector~ BGFLOAT ~ C1_ + +DeviceVector~ BGFLOAT ~ C2_ + +DeviceVector~ BGFLOAT ~ I0_ + +DeviceVector~ BGFLOAT ~ Vm_ + +DeviceVector~ BGFLOAT ~ Tau_ + +setupVertices() override + +loadParameters() + +printParameters() const + +createAllVertices(Layout &layout) + +toString(int index) const string + +deserialize(istream &input) + +serialize(ostream &output) const + +serialize(Archive &archive) + +advanceVertices(...) + +allocVerticesDeviceStruct() + +deleteVerticesDeviceStruct() + +clearVertexHistory(void *allVerticesDevice) override + +copyFromDevice() override + +copyToDevice() override + #allocDeviceStruct(AllIFNeuronsDeviceProperties &allVerticesDevice) + #deleteDeviceStruct(AllIFNeuronsDeviceProperties &allVerticesDevice) + #copyDeviceToHost(AllIFNeuronsDeviceProperties &allVerticesDevice) + #createNeuron(int neuronIndex, Layout &layout) + #setNeuronDefaults(int index) + #initNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) + #readNeuron(istream &input, int i) + #writeNeuron(ostream &output, int i) const +} +class AllIZHNeurons { + +DeviceVector~ BGFLOAT ~ Aconst_ + +DeviceVector~ BGFLOAT ~ Bconst_ + +DeviceVector~ BGFLOAT ~ Cconst_ + +DeviceVector~ BGFLOAT ~ Dconst_ + +DeviceVector~ BGFLOAT ~ u_ + +DeviceVector~ BGFLOAT ~ C3_ + +setupVertices() override + +printParameters() const override + +createAllVertices(Layout &layout) override + +toString(int index) const override string + +deserialize(istream &input) override + +serialize(ostream &output) const override + +serialize(Archive &archive) + +advanceVertices(...) + +allocVerticesDeviceStruct() override + +deleteVerticesDeviceStruct() override + +clearVertexHistory(void *allVerticesDevice) override + +copyFromDevice() override + +copyToDevice() override + +Create()$ AllVertices * + #allocDeviceStruct(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #deleteDeviceStruct(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #copyHostToDevice(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #copyDeviceToHost(AllIZHNeuronsDeviceProperties &allVerticesDevice) + #advanceNeuron(int index) + #fire(int index) + #createNeuron(int neuronIndex, Layout &layout) + #setNeuronDefaults(int index) + #initNeuronConstsFromParamValues(int neuronIndex, BGFLOAT deltaT) override + #readNeuron(istream &input, int index) + #writeNeuron(ostream &output, int index) const +} +class AllLIFNeurons { + +printParameters() const override + +serialize(Archive &archive) + +advanceVertices(...) + +Create()$ AllVertices * + #advanceNeuron(int index) + #fire(int index) +} +class AllSpikingNeurons { + <> + +DeviceVector~ bool ~ hasFired_ + +vector~ EventBuffer~ uint64_t ~ ~ vertexEvents_ + +DeviceVector~ BGFLOAT ~ summationPoints_ + +setupVertices() override + +clearSpikeCounts() + +registerHistoryVariables() override + +serialize(Archive &archive) + +setAdvanceVerticesDeviceParams(AllEdges &synapses) + +copyFromDevice() override + +copyToDevice() override + +integrateVertexInputs(...) + +advanceVertices(...) + +integrateVertexInputs(AllEdges &edges, EdgeIndexMap &edgeIndexMap) + +getSpikeHistory(int index, int offIndex) uint64_t + #clearDeviceSpikeCounts(...) + #advanceNeuron(int index)=0* + #fire(int index) +} +class AllVertices { + <> + #log4cplus::Logger fileLogger_ + #log4cplus::Logger vertexLogger_ + +setupVertices() + +printParameters() const + +loadEpochInputs(uint64_t currentStep, uint64_t endStep) + +loadEpochInputsToVertices(uint64_t currentStep, uint64_t endStep) + +loadParameters()=0* + +createAllVertices(Layout &layout)=0* + +toString(int i) const =0* string + +registerHistoryVariables()=0* + +serialize(Archive &archive) + +allocVerticesDeviceStruct()=0* + +deleteVerticesDeviceStruct()=0* + +clearVertexHistory(void *allVerticesDevice)=0* + +copyToDevice()=0* + +copyFromDevice()=0* + +copyEpochInputsToDevice() + +advanceVertices(...)* + +setAdvanceVerticesDeviceParams(AllEdges &edges)=0* + +integrateVertexInputs(...)* + +getNumberOfVerticesNeedingDeviceNoise() const int + +advanceVertices(...)* + +integrateVertexInputs(AllEdges &edges, EdgeIndexMap &edgeIndexMap)=0* +} +class EventBuffer { + +getBufferFront() const int + +getBufferEnd() const int + +getEpochStart() const int + +getNumElementsInEpoch() const int + +setBufferFront(int bufferFront) + +setBufferEnd(int bufferEnd) + +setEpochStart(int epochStart) + +setNumElementsInEpoch(int numElementsInEpoch) + +resize(int maxEvents) + +operator[](int i) const T + +serialize(Archive &archive) +} +AllVertices <|-- All911Vertices +AllSpikingNeurons <|-- AllIFNeurons +AllIFNeurons <|-- AllIZHNeurons +AllIFNeurons <|-- AllLIFNeurons +AllVertices <|-- AllSpikingNeurons +``` + + + +### Recorder Class Diagram + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +class Hdf5Recorder { + +init() override + +term() override + +compileHistories() override + +saveSimData() override + +printParameters() override + +registerVariable(...) + +registerVariable(...) + +Create()$ Recorder * +} +class RecordableBase { + <> + #std::string basicDataType_ + +getNumElements() const =0* int + +getElement(int index) const =0* variantTypes + +startNewEpoch()=0* + +setDataType()=0* + +getDataType() const =0* const string & + +serialize(Archive &archive) +} +class RecordableVector { + #vector~ T ~ dataSeries_ + +setDataType() override + +getDataType() const override const std::string & + +getNumElements() const override int + +startNewEpoch() override + +getElement(int index) const override variantTypes + +resize(int maxEvents) + +assign(size_t size, const T &value) + +operator[](int index) T & + +push_back(const T &value) + +getVector() const const std::vector~ T ~ & + +data() T * + +data() const const T * + +serialize(Archive &archive) +} +class Recorder { + <> + #string resultFileName_ + #log4cplus::Logger fileLogger_ + +init()=0* + +term()=0* + +compileHistories()=0* + +saveSimData()=0* + +printParameters()=0* + +registerVariable(...)* + +registerVariable(...)* + #getStarterNeuronMatrix(...)* +} +class Xml911Recorder { + +compileHistories() override + +saveSimData() override + +printParameters() override + +Create()$ Recorder * +} +class XmlRecorder { + #vector~ singleVariableInfo ~ variableTable_ + #ofstream resultOut_ + +init() override + +term() override + +compileHistories() override + +saveSimData() override + +printParameters() override + +registerVariable(...) + +registerVariable(...) + +Create()$ Recorder * + #toXML(...) string + #getStarterNeuronMatrix(...) +} +Recorder <|-- Hdf5Recorder +RecordableBase <|-- RecordableVector +XmlRecorder <|-- Xml911Recorder +Recorder <|-- XmlRecorder +``` + + + +### Core Class Diagram + +```mermaid +%%{init: {'class': {'hideEmptyMembersBox': true}}}%% +classDiagram +class Core { + +runSimulation(...) int + -parseCommandLine(...) bool +} +class CPUModel { + +finish() override + +advance() override + +updateConnections() override + +copyGPUtoCPU() override + +copyCPUtoGPU() override +} +class EdgeIndexMap { + +vector~ BGSIZE ~ outgoingEdgeIndexMap_ + +vector~ BGSIZE ~ outgoingEdgeBegin_ + +vector~ BGSIZE ~ outgoingEdgeCount_ + +vector~ BGSIZE ~ incomingEdgeIndexMap_ + +vector~ BGSIZE ~ incomingEdgeBegin_ + +vector~ BGSIZE ~ incomingEdgeCount_ + +serialize(Archive &archive) +} +class GenericFunctionNode { + -std::function~ void()~ function_ + +invokeFunction(const Operations &operation) const override bool + +invokeFunction(...) bool +} +class GPUModel { + +setupSim() override + +finish() override + +advance() override + +updateConnections() override + +copyCPUtoGPU() override + +copyGPUtoCPU() override + +printGPUEdgesPropsModel() const + +getAllEdgesDevice() AllEdgesDeviceProperties *& + +getAllVerticesDevice() AllVerticesDeviceProperties *& + #allocDeviceStruct() + #deleteDeviceStruct() + #roundUpNumberOfNoiseElements(int input) int + -allocEdgeIndexMap(int count) + -updateHistory() + -eraseEdge(AllEdges &edges, int vertexIndex, int edgeIndex) + -addEdge(...) + -createEdge(...) +} +class IFunctionNode { + <> + #Operations operationType_ + +invokeFunction(const Operations &operation) const =0* bool + +invokeFunction(...)* bool +} +class Model { + <> + #unique_ptr~ Connections ~ connections_ + #unique_ptr~ Layout ~ layout_ + #unique_ptr~ Recorder ~ recorder_ + #log4cplus::Logger fileLogger_ + +getConnections() const Connections & + +getLayout() const Layout & + +getRecorder() const Recorder & + +saveResults() + +setupSim() + +finish()=0* + +updateHistory() + +advance()=0* + +updateConnections()=0* + +serialize(Archive &archive, std::uint32_t const version) + #copyGPUtoCPU()=0* + #copyCPUtoGPU()=0* + #createAllVertices() +} +class OperationManager { + -list~ unique_ptr~ IFunctionNode ~ ~ functionList_ + -log4cplus::Logger logger_ + +getInstance()$ OperationManager & + +registerOperation(...) + +registerOperation(...) + +executeOperation(const Operations &operation) const + +executeOperation(...) + +operationToString(const Operations &operation) const string + +operator=(const OperationManager &operationManager)=delete OperationManager & + +operator=(OperationManager &&operationManager)=delete OperationManager & +} +class Serializer { + +serialize() + +deserialize() bool + -processArchive(Archive &archive, Simulator &simulator)$ bool +} +class Simulator { + +getInstance()$ Simulator & + +setup() + +finish() + +loadParameters() + +printParameters() const + +reset() + +simulate() + +advanceEpoch(int currentEpoch) const + +saveResults() const + +instantiateSimulatorObjects() bool +} +class TwoUint64ArgFunctionNode { + -std::function~ void(uint64_t, uint64_t)~ function_ + +invokeFunction(const Operations &operation) const bool + +invokeFunction(...) bool +} +Model <|-- CPUModel +IFunctionNode <|-- GenericFunctionNode +Model <|-- GPUModel +IFunctionNode <|-- TwoUint64ArgFunctionNode +``` + diff --git a/docs/Developer/index.md b/docs/Developer/index.md index 0f4ea5ef8..f2c1b4fef 100644 --- a/docs/Developer/index.md +++ b/docs/Developer/index.md @@ -31,16 +31,19 @@ Students, use this [quickstart guide](StudentSetup.md) to help setup, use, and d - GitHub Pages - Refer to the [GitHub Pages documentation](GHPages.md) section for an overview of how we use GitHub Pages and editing practices - GitHub Actions Workflows - - We have a [Doxygen Action](GHActions.md#doxygen-action) to regenerate the Doxygen documentation automatically - - The [GitHub Pages Action](GHActions.md#github-pages-action) is another action run along with the Doxygen one - - Here is our [plantUML Diagrams Action](GHActions.md#plantuml-action) that regenerates our UML image documents + - We have a [Doxygen and GitHub Pages Action](GHActions.md#doxygen-and-github-pages-action-gh-pagesyml) to regenerate and publish documentation automatically or manually + - We have a [Code Style Action](GHActions.md#code-style-check-formatyml) to verify formatting with clang-format + - We have a [Unit Tests Action](GHActions.md#unit-tests-unit-testsyml) to run unit tests + - We have a [Regression Tests Action](GHActions.md#regression-tests-regression-testsyml) to run simulation regression tests + - We have an [Auto-Close Merged Issues Action](GHActions.md#auto-close-merged-issues-close-merged-issuesyml) to automatically close issues when pull requests merge into `SharedDevelopment` or `master` +- Repository Maintenance Scripts + - [Stale Issue Cleanup Script](GHActions.md#stale-issue-cleanup-cleanup_stale_issuessh) to audit and batch-close issues resolved in merged pull requests ## Graphitti System Documentation - Diagrams - - Here is an overview [block UML diagram](ClassDiagrams/hand-drawn.pdf) - - Here is a list of [UML class diagrams](classDiagrams.md) of Graphitti - - Here are the [sequence UML diagrams](sequenceDiagrams.md) for the Graphitti system + - Here is a list of [UML class diagrams](classDiagrams.md) (in Mermaid) of Graphitti + - Here are the [sequence diagrams](sequenceDiagrams.md) (in Mermaid) for the Graphitti system - Doxygen - Documentation generated from source code - Doxygen provides web-based indices and hierarchical views of Graphitti's class and file structures diff --git a/docs/Developer/sequenceDiagrams.md b/docs/Developer/sequenceDiagrams.md index 549354c9e..dc30e393d 100644 --- a/docs/Developer/sequenceDiagrams.md +++ b/docs/Developer/sequenceDiagrams.md @@ -2,22 +2,201 @@ The following is a Diagram of the top-level simulator execution sequence. The object creation and simulation execution sequences are presented in separate diagrams. -![Top-level Flow Diagram](SequenceDiagrams/diagrams/topLevelFlow.png?raw=true "Graphitti Top-level Diagram") +```mermaid +sequenceDiagram + participant Core + participant ParamContainer + participant Simulator + participant ParameterManager + participant OperationManager + participant GraphManager + participant Serializer + participant Model + participant Recorder + + Core-->>ParamContainer: Parse Command Line + activate ParamContainer + Note right of ParamContainer: Config File
Deserialize File
Serialize File
Stimulus File + + Core->>Simulator: Set File Names + Simulator->>ParamContainer: Get File Names + ParamContainer->>Simulator: File Names + deactivate ParamContainer + + Core->>ParameterManager: Load Parameter File + ParameterManager->>Simulator: Get Config File Name + Simulator->>ParameterManager: Config File Name + Core->>Simulator: Load Parameters + Simulator->>ParameterManager: Get parameters from XML + ParameterManager->>Simulator: Parameters + Note right of Simulator: width_, height_, epochDuration_,
numEpochs_, maxFiringRate_,
maxEdgesPerVertex_, RNG, etc. + + Core->>Simulator: Instantiate Simulator Objects + Note right of Simulator: Details are in a separate
sequence diagram. + + Core->>OperationManager: Register Graph Properties + Note right of OperationManager: Ask all objects to register their Graph properties + + Core->>GraphManager: Read Graph + + Core->>OperationManager: Load Parameters + Note right of OperationManager: Runs loadParameters method for
each instantiated object.
Methods are registered to
OperationManager on instantiation. + + Core->>Simulator: Setup + Note right of Simulator: Details are in a separate
sequence diagram. + + opt if serialized file name available + Core->>Serializer: Deserialize file + end + + Core->>Simulator: Simulate + Note right of Simulator: Details are in a separate
sequence diagram. + + opt if serialization file available + Core->>Serializer: Serialize Synapses + end + + Core->>Simulator: Finish + Simulator->>Model: Clean up model resources + Core->>Recorder: Terminate Recording + Core->>Core: Exit program +``` # Simulator Objects Creating Sequence Diagram Graphitti uses the Factory Method and Singleton design patterns for instantiating the object types defined in the configuration file. -![Simulator Object Creation](SequenceDiagrams/diagrams/simObjectsCreation.png?raw=true "Simulator Object Creation") +```mermaid +sequenceDiagram + participant Simulator + participant Model + participant Factory + participant Layout + participant AllVertices + participant Connections + participant AllEdges + participant Recorder + + Simulator->>Model: New CPU/GPU Model + activate Model + Model->>Factory: Create Layout + Factory-->>Layout: Instantiate + Layout->>Factory: Create Vertices + Factory-->>AllVertices: Instantiate + + Model->>Factory: Create Connections + Factory-->>Connections: Instantiate + Connections->>Factory: Create AllEdges + Factory-->>AllEdges: Instantiate + + Model->>Factory: Create Recorders + Factory-->>Recorder: Instantiate +``` # Simulator Setup Sequence Diagram This Diagram represents an overview of the setup sequence. -![Simulator Setup](SequenceDiagrams/diagrams/simulatorSetup.png?raw=true "Simulator Setup") +```mermaid +sequenceDiagram + participant Core + participant Simulator + participant Model + participant Layout + participant AllVertices + participant Connections + participant AllEdges + participant Recorder + + Core->>Simulator: Setup + Simulator->>Model: Model Setup + Model->>Layout: Get Vertices + Layout->>AllVertices: Setup Vertices + Model->>Connections: Get Edges + Connections->>AllEdges: Setup Edges + Model->>Layout: Setup Layout + Layout->>Layout: Initialize Vertices Locations + Model->>Recorder: Initialize Recorder + Model->>Model: Create AllVertices* + Model->>Layout: Generate Vertex Map + Model->>Layout: Initialize Starter Map + Model->>Layout: Create AllVertices +``` # Simulation Sequence Diagram This Diagram represents an overview of the simulation process execution sequence. -![Simulation Sequence Diagram](SequenceDiagrams/diagrams/simulatorSimulate.png?raw=true "Simulation Sequence Diagram") +```mermaid +sequenceDiagram + participant Simulator + participant Model + participant Layout + participant AllVertices + participant Connections + participant AllEdges + participant Recorder + + loop for i=0 to currentEpoch-1 + Simulator->>Simulator: Advance Epoch + loop for i=0 to epochDuration-1 + Simulator->>Model: Advance + Model->>Layout: Get Vertices + Layout->>AllVertices: Advance Vertices + Model->>Connections: Get Edges + Connections->>AllEdges: Advance Edges + end + Model->>Connections: Update Connections + opt if updateConnections returns true + Model->>Connections: Update Synapses Weights + Model->>Connections: Create Edge Index Map + end + Model->>Recorder: Update (Compile) History + end + + Simulator->>Model: Save Results + Model->>Recorder: Save Simulation Data +``` + +# Recorder Sequence Diagram + +This Diagram represents an overview of the recorder sequence. + +```mermaid +sequenceDiagram + participant S as SimulationComponent + participant R as Recorder + participant RB as RecordableBase + + S->>R: registerVariable(varName, recordVar, variableType, ......) + activate R + RB->>R: getDataType(): string + Note left of R: add all received variables to the table + + loop Simulation Epoch + S->>RB: updateVariable() + activate RB + loop Variable Table Iteration + opt if variable is DYNAMIC + alt XmlRecorder + Note right of R: Capture value and Accumulate data + RB->>R: getElement(index): variant + Note left of RB: retrieve primitive data
that's encapsulated in a variant + R->>R: compileHistories() + else HDF5Recorder + Note right of R: Capture data and Write data to HDF5 file + R->>R: compileHistories() + end + end + end + end + loop Variable Table Iteration + opt if variable is CONSTANT + RB->>R: getElement(index): variant + R->>R: captureData() + end + deactivate RB + R->>R: saveSimData() + Note right of R: Extracting the value from the variant knowing its type
Output data + end +``` diff --git a/docs/index.md b/docs/index.md index 8c067e16d..360e55639 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,4 +1,10 @@ -[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4678633.svg)](https://doi.org/10.5281/zenodo.4678633) +[![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.4678632-blue.svg)](https://zenodo.org/badge/latestdoi/273115663) +[![Documentation](https://img.shields.io/badge/docs-online-blue.svg)](https://uwb-biocomputing.github.io/Graphitti/) +[![Unit Tests](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/unit-tests.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/unit-tests.yml) +[![Regression Tests](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/regression-tests.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/regression-tests.yml) +[![Code Style](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/format.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/format.yml) +[![GitHub Pages](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/UWB-Biocomputing/Graphitti/actions/workflows/gh-pages.yml) +[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/UWB-Biocomputing/Graphitti/blob/master/LICENSE) ## Table of Contents