Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Additional Namespacing #583

Closed
ptheywood opened this issue Jul 7, 2021 · 4 comments
Closed

Additional Namespacing #583

ptheywood opened this issue Jul 7, 2021 · 4 comments
Assignees

Comments

@ptheywood
Copy link
Member

#551 added the use of C++ namespaces to the repository, but there is still room for improvement.

  • Many classes could be moved to detail which are not intended to be part of the public API, but must be present in public include/headers (or are currently even though they do not need to be).
    • Essentially, if it's not wrapped by SWIG explcitly it should probably be in detail.
    • Due to scoping (protected etc) and friend relationships, some things are much more difficult to move namespace than they should be.
  • The main flamegpu namespace contains many classes. More specialisation might be nice.
@ptheywood ptheywood added this to the v2.0.0-alpha.N milestone Sep 22, 2021
@ptheywood
Copy link
Member Author

ptheywood commented Nov 16, 2022

Current plan:

  1. Mock out the desired structure purely based on current headers (tree?) and what it might want to look like
  2. Discuss
  3. Implement changes
    • This might raise more issues, depending on visiability if things were missed previosuly (i.e. if a public API method uses something in a detail namespace.
    • Might end up being freindship issues too.

@ptheywood
Copy link
Member Author

ptheywood commented Nov 17, 2022

As of 1cacd90, `include/flamegpu looks like:

Dirs only:

tree -d 
.
├── exception
├── gpu
│   └── detail
├── io
├── model
├── pop
│   └── detail
├── runtime
│   ├── detail
│   │   └── curve
│   ├── messaging
│   │   ├── MessageArray
│   │   ├── MessageArray2D
│   │   ├── MessageArray3D
│   │   ├── MessageBruteForce
│   │   ├── MessageBucket
│   │   ├── MessageNone
│   │   ├── MessageSpatial2D
│   │   └── MessageSpatial3D
│   └── utility
├── sim
├── util
│   └── detail
└── visualiser
    └── color
tree --dirsfirst
.
├── exception
│   ├── FLAMEGPUDeviceException.cuh
│   ├── FLAMEGPUDeviceException_device.cuh
│   └── FLAMEGPUException.h
├── gpu
│   ├── detail
│   │   ├── CubTemporaryMemory.cuh
│   │   └── CUDAErrorChecking.cuh
│   ├── CUDAAgent.h
│   ├── CUDAAgentStateList.h
│   ├── CUDAEnsemble.h
│   ├── CUDAFatAgent.h
│   ├── CUDAFatAgentStateList.h
│   ├── CUDAMacroEnvironment.h
│   ├── CUDAMessage.h
│   ├── CUDAMessageList.h
│   ├── CUDAScanCompaction.h
│   ├── CUDAScatter.cuh
│   └── CUDASimulation.h
├── io
│   ├── JSONLogger.h
│   ├── JSONStateReader.h
│   ├── JSONStateWriter.h
│   ├── LoggerFactory.h
│   ├── Logger.h
│   ├── StateReaderFactory.h
│   ├── StateReader.h
│   ├── StateWriterFactory.h
│   ├── StateWriter.h
│   ├── XMLLogger.h
│   ├── XMLStateReader.h
│   └── XMLStateWriter.h
├── model
│   ├── AgentData.h
│   ├── AgentDescription.h
│   ├── AgentFunctionData.cuh
│   ├── AgentFunctionDescription.h
│   ├── DependencyGraph.h
│   ├── DependencyNode.h
│   ├── EnvironmentData.h
│   ├── EnvironmentDescription.h
│   ├── HostFunctionDescription.h
│   ├── LayerData.h
│   ├── LayerDescription.h
│   ├── ModelData.h
│   ├── ModelDescription.h
│   ├── SubAgentData.h
│   ├── SubAgentDescription.h
│   ├── SubEnvironmentData.h
│   ├── SubEnvironmentDescription.h
│   ├── SubModelData.h
│   ├── SubModelDescription.h
│   └── Variable.h
├── pop
│   ├── detail
│   │   ├── GenericMemoryVector.h
│   │   └── MemoryVector.h
│   ├── AgentInstance.h
│   ├── AgentVector_Agent.h
│   ├── AgentVector.h
│   ├── DeviceAgentVector.h
│   └── DeviceAgentVector_impl.h
├── runtime
│   ├── detail
│   │   ├── curve
│   │   │   ├── Curve.cuh
│   │   │   ├── curve_rtc.cuh
│   │   │   ├── DeviceCurve.cuh
│   │   │   └── HostCurve.cuh
│   │   └── SharedBlock.h
│   ├── messaging
│   │   ├── MessageArray
│   │   │   ├── MessageArrayDevice.cuh
│   │   │   └── MessageArrayHost.h
│   │   ├── MessageArray2D
│   │   │   ├── MessageArray2DDevice.cuh
│   │   │   └── MessageArray2DHost.h
│   │   ├── MessageArray3D
│   │   │   ├── MessageArray3DDevice.cuh
│   │   │   └── MessageArray3DHost.h
│   │   ├── MessageBruteForce
│   │   │   ├── MessageBruteForceDevice.cuh
│   │   │   └── MessageBruteForceHost.h
│   │   ├── MessageBucket
│   │   │   ├── MessageBucketDevice.cuh
│   │   │   └── MessageBucketHost.h
│   │   ├── MessageNone
│   │   │   ├── MessageNoneDevice.cuh
│   │   │   └── MessageNoneHost.h
│   │   ├── MessageSpatial2D
│   │   │   ├── MessageSpatial2DDevice.cuh
│   │   │   └── MessageSpatial2DHost.h
│   │   ├── MessageSpatial3D
│   │   │   ├── MessageSpatial3DDevice.cuh
│   │   │   └── MessageSpatial3DHost.h
│   │   ├── MessageArray2D.h
│   │   ├── MessageArray3D.h
│   │   ├── MessageArray.h
│   │   ├── MessageBruteForce.h
│   │   ├── MessageBucket.h
│   │   ├── MessageNone.h
│   │   ├── MessageSortingType.h
│   │   ├── MessageSpatial2D.h
│   │   ├── MessageSpatial3D.h
│   │   └── MessageSpecialisationHandler.h
│   ├── utility
│   │   ├── AgentRandom.cuh
│   │   ├── DeviceEnvironment.cuh
│   │   ├── DeviceMacroProperty.cuh
│   │   ├── EnvironmentManager.cuh
│   │   ├── HostEnvironment.cuh
│   │   ├── HostMacroProperty.cuh
│   │   ├── HostRandom.cuh
│   │   └── RandomManager.cuh
│   ├── AgentFunctionCondition.cuh
│   ├── AgentFunctionCondition_shim.cuh
│   ├── AgentFunction.cuh
│   ├── AgentFunction_shim.cuh
│   ├── DeviceAPI.cuh
│   ├── HostAgentAPI.cuh
│   ├── HostAPI.h
│   ├── HostAPI_macros.h
│   ├── HostFunctionCallback.h
│   ├── HostNewAgentAPI.h
│   ├── messaging_device.h
│   └── messaging.h
├── sim
│   ├── AgentInterface.h
│   ├── AgentLoggingConfig.h
│   ├── AgentLoggingConfig_Reductions.cuh
│   ├── AgentLoggingConfig_SumReturn.h
│   ├── LogFrame.h
│   ├── LoggingConfig.h
│   ├── RunPlan.h
│   ├── RunPlanVector.h
│   ├── SimLogger.h
│   ├── SimRunner.h
│   └── Simulation.h
├── util
│   ├── detail
│   │   ├── compute_capability.cuh
│   │   ├── cuda.cuh
│   │   ├── CUDAEventTimer.cuh
│   │   ├── curand.cuh
│   │   ├── cxxname.hpp
│   │   ├── JitifyCache.h
│   │   ├── SignalHandlers.h
│   │   ├── StaticAssert.h
│   │   ├── SteadyClockTimer.h
│   │   ├── Timer.h
│   │   └── wddm.cuh
│   ├── Any.h
│   ├── cleanup.h
│   ├── nvtx.h
│   ├── StringPair.h
│   └── type_decode.h
├── visualiser
│   ├── color
│   │   ├── AutoPalette.h
│   │   ├── ColorFunction.h
│   │   ├── Color.h
│   │   ├── DiscreteColor.h
│   │   ├── HSVInterpolation.h
│   │   ├── Palette.h
│   │   ├── StaticColor.h
│   │   └── ViridisInterpolation.h
│   ├── AgentStateVis.h
│   ├── AgentVis.h
│   ├── LineVis.h
│   ├── ModelVis.h
│   ├── PanelVis.h
│   ├── StaticModelVis.h
│   └── visualiser_api.h
├── defines.h
├── flamegpu.h
└── version.h

25 directories, 151 files

@ptheywood
Copy link
Member Author

In general, exception, io, visualiser and util as sub-namsepaces are all fine as public API namespaces

There might be room for a top-level detail namespace, where things like compute_capability can go instead of util/detail, as they aren't details for other parts of util, rather they are utils for our private use.

model is OK, but is missing an Ensemble.h header for a generic Ensemble implementation (just to match Simulation). Given we expect a full API break anyway when we add a non-CUDA implementation, that's probably not incredibly urgent, as no one will be invoking it directly anyway at this time.

pop could/should be renamed population, but DeviceAgentVector only matters to a CUDA implementation, i.e. there's overlap with gpu. Ideally users wouldn't need to specify it's a DeviceAgentVector either?

sim, runtime and gpu are all very interconnected, and even overlaps with Model (message description classes are part of the model, not just used at runtime)

simulation would be a better namespace name than sim if it's kept.


We also don't even have namespaces for some of these, and never will in the python version while it is swig generated, so might not be worth going too deep just for consistency in the public API?

There are currently 374 include "flamegpu/ statements within include (see below).

Of those, there's a decent number of cross-directory connections.

# exception
grep -rni 'include "flamegpu/' flamegpu/exception | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      1 runtime
      1 gpu
      1 exception

# gpu
grep -rni 'include "flamegpu/' flamegpu/gpu | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      8 runtime
      6 model
      2 util
      2 sim
      2 exception
      1 visualiser
      1 defines.h"
     10 gpu

# io
grep -rni 'include "flamegpu/' flamegpu/io | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      7 model
      1 exception
     17 io
     10 util

# model
grep -rni 'include "flamegpu/' flamegpu/model | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      4 util
      3 pop
      3 gpu
      2 exception
      2 defines.h"
     28 model
     11 runtime

# pop 
grep -rni 'include "flamegpu/' flamegpu/pop | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      8 pop
      2 util
      2 model
      2 exception
      1 gpu
      1 defines.h"

# runtime
grep -rni 'include "flamegpu/' flamegpu/runtime | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      8 model
     89 runtime
      7 gpu
      7 defines.h"
      5 exception
      4 sim
      2 pop
     14 util


# sim
grep -rni 'include "flamegpu/' flamegpu/sim | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      8 sim
      7 util
      4 model
      3 defines.h"
      2 runtime
      2 gpu
      1 exception

# grep -rni 'include "flamegpu/' flamegpu/util | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      3 exception
      2 util
      2 gpu

#  grep -rni 'include "flamegpu/' flamegpu/visualiser | cut -d '#' -f 2 | cut -d '/' -f 2 | sort | uniq -c | sort -r
      3 exception
     35 visualiser
      1 model

Most includes are within the same directory / namespace, which makes sense.
Including files from exception, util and defines.h also make sense, as does including files from model given its required to have a model description to do anything useful with FLAMEGPU.

Other cross includsions don't make much sesnse from a namespace as sub-libraries perspective, within header files. (source files could cross-include freely imo, as that's not part of the public API.)

Detail includes ideally wouldn't be found in the public headers, but given templating that's unavoidable without explicit instantiation of all supported template types, which we don't really want to do.

flamegpu/exception/FLAMEGPUDeviceException.cuh:11:#include "flamegpu/exception/FLAMEGPUDeviceException_device.cuh"
flamegpu/exception/FLAMEGPUDeviceException.cuh:7:#include "flamegpu/gpu/CUDAScanCompaction.h"
flamegpu/exception/FLAMEGPUDeviceException_device.cuh:9:#include "flamegpu/runtime/detail/SharedBlock.h"
flamegpu/flamegpu.h:16:#include "flamegpu/version.h"
flamegpu/flamegpu.h:17:#include "flamegpu/runtime/HostAPI.h"
flamegpu/flamegpu.h:18:#include "flamegpu/runtime/HostAgentAPI.cuh"
flamegpu/flamegpu.h:19:#include "flamegpu/runtime/DeviceAPI.cuh"
flamegpu/flamegpu.h:20:#include "flamegpu/model/ModelDescription.h"
flamegpu/flamegpu.h:21:#include "flamegpu/model/AgentDescription.h"
flamegpu/flamegpu.h:22:#include "flamegpu/model/AgentFunctionDescription.h"
flamegpu/flamegpu.h:23:#include "flamegpu/model/DependencyGraph.h"
flamegpu/flamegpu.h:24:#include "flamegpu/model/EnvironmentDescription.h"
flamegpu/flamegpu.h:25:#include "flamegpu/model/LayerDescription.h"
flamegpu/flamegpu.h:26:#include "flamegpu/model/SubModelDescription.h"
flamegpu/flamegpu.h:27:#include "flamegpu/model/SubAgentDescription.h"
flamegpu/flamegpu.h:28:#include "flamegpu/model/SubEnvironmentDescription.h"
flamegpu/flamegpu.h:29:#include "flamegpu/pop/AgentVector.h"
flamegpu/flamegpu.h:30:#include "flamegpu/pop/AgentInstance.h"
flamegpu/flamegpu.h:31:#include "flamegpu/gpu/CUDASimulation.h"
flamegpu/flamegpu.h:32:#include "flamegpu/runtime/messaging.h"
flamegpu/flamegpu.h:33:#include "flamegpu/runtime/AgentFunction_shim.cuh"
flamegpu/flamegpu.h:34:#include "flamegpu/runtime/AgentFunctionCondition_shim.cuh"
flamegpu/flamegpu.h:35:#include "flamegpu/gpu/CUDAEnsemble.h"
flamegpu/flamegpu.h:36:#include "flamegpu/sim/RunPlanVector.h"
flamegpu/flamegpu.h:37:#include "flamegpu/sim/LoggingConfig.h"
flamegpu/flamegpu.h:38:#include "flamegpu/sim/AgentLoggingConfig.h"
flamegpu/flamegpu.h:39:#include "flamegpu/sim/LogFrame.h"
flamegpu/flamegpu.h:40:#include "flamegpu/util/cleanup.h"
flamegpu/flamegpu.h:43:#include "flamegpu/visualiser/visualiser_api.h"
flamegpu/gpu/CUDAAgent.h:13:#include "flamegpu/util/detail/JitifyCache.h"
flamegpu/gpu/CUDAAgent.h:14:#include "flamegpu/gpu/CUDAAgentStateList.h"
flamegpu/gpu/CUDAAgent.h:15:#include "flamegpu/model/AgentFunctionData.cuh"
flamegpu/gpu/CUDAAgent.h:16:#include "flamegpu/model/SubAgentData.h"
flamegpu/gpu/CUDAAgent.h:17:#include "flamegpu/runtime/detail/curve/curve_rtc.cuh"
flamegpu/gpu/CUDAAgent.h:18:#include "flamegpu/sim/AgentInterface.h"
flamegpu/gpu/CUDAAgentStateList.h:9:#include "flamegpu/gpu/CUDAFatAgentStateList.h"
flamegpu/gpu/CUDAEnsemble.h:9:#include "flamegpu/defines.h"
flamegpu/gpu/CUDAFatAgent.h:11:#include "flamegpu/gpu/CUDAAgentStateList.h"
flamegpu/gpu/CUDAFatAgent.h:12:#include "flamegpu/gpu/CUDAFatAgentStateList.h"
flamegpu/gpu/CUDAFatAgent.h:13:#include "flamegpu/model/SubAgentData.h"
flamegpu/gpu/CUDAFatAgentStateList.h:11:#include "flamegpu/model/AgentData.h"
flamegpu/gpu/CUDAFatAgentStateList.h:12:#include "flamegpu/model/SubAgentData.h"
flamegpu/gpu/CUDAMacroEnvironment.h:15:#include "flamegpu/runtime/detail/curve/HostCurve.cuh"
flamegpu/gpu/CUDAMacroEnvironment.h:16:#include "flamegpu/runtime/utility/HostMacroProperty.cuh"
flamegpu/gpu/CUDAMacroEnvironment.h:17:#include "flamegpu/util/detail/cuda.cuh"
flamegpu/gpu/CUDAMessage.h:10:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/gpu/CUDAMessage.h:9:#include "flamegpu/gpu/CUDAMessageList.h"
flamegpu/gpu/CUDAScatter.cuh:11:#include "flamegpu/model/Variable.h"
flamegpu/gpu/CUDAScatter.cuh:12:#include "flamegpu/gpu/detail/CubTemporaryMemory.cuh"
flamegpu/gpu/CUDAScatter.cuh:13:#include "flamegpu/gpu/CUDAScanCompaction.h"
flamegpu/gpu/CUDASimulation.h:11:#include "flamegpu/exception/FLAMEGPUDeviceException.cuh"
flamegpu/gpu/CUDASimulation.h:12:#include "flamegpu/sim/Simulation.h"
flamegpu/gpu/CUDASimulation.h:13:#include "flamegpu/runtime/detail/curve/HostCurve.cuh"
flamegpu/gpu/CUDASimulation.h:14:#include "flamegpu/gpu/CUDAScatter.cuh"
flamegpu/gpu/CUDASimulation.h:15:#include "flamegpu/gpu/CUDAEnsemble.h"
flamegpu/gpu/CUDASimulation.h:16:#include "flamegpu/runtime/utility/RandomManager.cuh"
flamegpu/gpu/CUDASimulation.h:17:#include "flamegpu/runtime/HostNewAgentAPI.h"
flamegpu/gpu/CUDASimulation.h:18:#include "flamegpu/gpu/CUDAMacroEnvironment.h"
flamegpu/gpu/CUDASimulation.h:19:#include "flamegpu/runtime/utility/EnvironmentManager.cuh"
flamegpu/gpu/CUDASimulation.h:22:#include "flamegpu/visualiser/ModelVis.h"
flamegpu/gpu/detail/CUDAErrorChecking.cuh:9:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/io/JSONLogger.h:7:#include "flamegpu/io/Logger.h"
flamegpu/io/JSONLogger.h:8:#include "flamegpu/util/Any.h"
flamegpu/io/JSONStateReader.h:10:#include "flamegpu/model/ModelDescription.h"
flamegpu/io/JSONStateReader.h:11:#include "flamegpu/util/StringPair.h"
flamegpu/io/JSONStateReader.h:9:#include "flamegpu/io/StateReader.h"
flamegpu/io/JSONStateWriter.h:10:#include "flamegpu/util/StringPair.h"
flamegpu/io/JSONStateWriter.h:8:#include "flamegpu/io/StateWriter.h"
flamegpu/io/JSONStateWriter.h:9:#include "flamegpu/model/ModelDescription.h"
flamegpu/io/LoggerFactory.h:11:#include "flamegpu/io/Logger.h"
flamegpu/io/LoggerFactory.h:12:#include "flamegpu/io/JSONLogger.h"
flamegpu/io/LoggerFactory.h:13:#include "flamegpu/io/XMLLogger.h"
flamegpu/io/StateReaderFactory.h:11:#include "flamegpu/io/StateReader.h"
flamegpu/io/StateReaderFactory.h:12:#include "flamegpu/io/XMLStateReader.h"
flamegpu/io/StateReaderFactory.h:13:#include "flamegpu/io/JSONStateReader.h"
flamegpu/io/StateReaderFactory.h:14:#include "flamegpu/util/StringPair.h"
flamegpu/io/StateReader.h:10:#include "flamegpu/util/StringPair.h"
flamegpu/io/StateReader.h:11:#include "flamegpu/model/EnvironmentData.h"
flamegpu/io/StateReader.h:9:#include "flamegpu/model/ModelDescription.h"
flamegpu/io/StateWriterFactory.h:10:#include "flamegpu/io/StateWriter.h"
flamegpu/io/StateWriterFactory.h:11:#include "flamegpu/io/XMLStateWriter.h"
flamegpu/io/StateWriterFactory.h:12:#include "flamegpu/io/JSONStateWriter.h"
flamegpu/io/StateWriterFactory.h:13:#include "flamegpu/io/JSONLogger.h"
flamegpu/io/StateWriterFactory.h:14:#include "flamegpu/io/XMLLogger.h"
flamegpu/io/StateWriterFactory.h:15:#include "flamegpu/util/StringPair.h"
flamegpu/io/StateWriter.h:10:#include "flamegpu/util/StringPair.h"
flamegpu/io/StateWriter.h:8:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/io/StateWriter.h:9:#include "flamegpu/model/ModelDescription.h"
flamegpu/io/XMLLogger.h:7:#include "flamegpu/io/Logger.h"
flamegpu/io/XMLLogger.h:8:#include "flamegpu/util/Any.h"
flamegpu/io/XMLStateReader.h:10:#include "flamegpu/model/ModelDescription.h"
flamegpu/io/XMLStateReader.h:11:#include "flamegpu/util/StringPair.h"
flamegpu/io/XMLStateReader.h:9:#include "flamegpu/io/StateReader.h"
flamegpu/io/XMLStateWriter.h:10:#include "flamegpu/util/StringPair.h"
flamegpu/io/XMLStateWriter.h:8:#include "flamegpu/io/StateWriter.h"
flamegpu/io/XMLStateWriter.h:9:#include "flamegpu/model/ModelDescription.h"
flamegpu/model/AgentData.h:10:#include "flamegpu/model/ModelData.h"
flamegpu/model/AgentData.h:11:#include "flamegpu/defines.h"
flamegpu/model/AgentData.h:9:#include "flamegpu/model/Variable.h"
flamegpu/model/AgentDescription.h:11:#include "flamegpu/model/Variable.h"
flamegpu/model/AgentDescription.h:12:#include "flamegpu/model/ModelDescription.h"
flamegpu/model/AgentDescription.h:13:#include "flamegpu/pop/AgentVector.h"
flamegpu/model/AgentDescription.h:14:#include "flamegpu/pop/AgentInstance.h"
flamegpu/model/AgentDescription.h:15:#include "flamegpu/model/AgentData.h"
flamegpu/model/AgentDescription.h:16:#include "flamegpu/util/type_decode.h"
flamegpu/model/AgentFunctionData.cuh:10:#include "flamegpu/runtime/AgentFunction.cuh"
flamegpu/model/AgentFunctionData.cuh:11:#include "flamegpu/runtime/AgentFunctionCondition.cuh"
flamegpu/model/AgentFunctionData.cuh:8:#include "flamegpu/model/ModelData.h"
flamegpu/model/AgentFunctionData.cuh:9:#include "flamegpu/model/AgentData.h"
flamegpu/model/AgentFunctionDescription.h:10:#include "flamegpu/model/DependencyNode.h"
flamegpu/model/AgentFunctionDescription.h:11:#include "flamegpu/model/Variable.h"
flamegpu/model/AgentFunctionDescription.h:12:#include "flamegpu/model/LayerDescription.h"
flamegpu/model/AgentFunctionDescription.h:13:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/model/AgentFunctionDescription.h:14:#include "flamegpu/runtime/detail/curve/curve_rtc.cuh"
flamegpu/model/AgentFunctionDescription.h:8:#include "flamegpu/model/ModelDescription.h"
flamegpu/model/AgentFunctionDescription.h:9:#include "flamegpu/model/AgentDescription.h"
flamegpu/model/DependencyGraph.h:10:#include "flamegpu/model/AgentFunctionDescription.h"
flamegpu/model/DependencyGraph.h:11:#include "flamegpu/model/HostFunctionDescription.h"
flamegpu/model/DependencyGraph.h:12:#include "flamegpu/model/SubModelDescription.h"
flamegpu/model/DependencyNode.h:5:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/model/EnvironmentData.h:11:#include "flamegpu/util/Any.h"
flamegpu/model/EnvironmentData.h:12:#include "flamegpu/model/ModelData.h"
flamegpu/model/EnvironmentDescription.h:11:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/model/EnvironmentDescription.h:12:#include "flamegpu/runtime/utility/HostEnvironment.cuh"
flamegpu/model/EnvironmentDescription.h:13:#include "flamegpu/util/Any.h"
flamegpu/model/EnvironmentDescription.h:14:#include "flamegpu/model/EnvironmentData.h"
flamegpu/model/EnvironmentDescription.h:15:#include "flamegpu/util/type_decode.h"
flamegpu/model/EnvironmentDescription.h:16:#include "flamegpu/gpu/CUDAEnsemble.h"
flamegpu/model/HostFunctionDescription.h:11:#include "flamegpu/model/DependencyNode.h"
flamegpu/model/HostFunctionDescription.h:12:#include "flamegpu/model/LayerDescription.h"
flamegpu/model/HostFunctionDescription.h:9:#include "flamegpu/runtime/HostFunctionCallback.h"
flamegpu/model/LayerData.h:10:#include "flamegpu/model/ModelData.h"
flamegpu/model/LayerData.h:9:#include "flamegpu/runtime/HostAPI_macros.h"  // Todo replace with std/cub style fns (see AgentFunction.cuh)
flamegpu/model/LayerDescription.h:10:#include "flamegpu/model/LayerData.h"
flamegpu/model/LayerDescription.h:11:#include "flamegpu/runtime/AgentFunction.cuh"
flamegpu/model/LayerDescription.h:12:#include "flamegpu/model/AgentFunctionData.cuh"
flamegpu/model/LayerDescription.h:7:#include "flamegpu/model/ModelDescription.h"
flamegpu/model/LayerDescription.h:8:#include "flamegpu/model/AgentDescription.h"
flamegpu/model/LayerDescription.h:9:#include "flamegpu/model/ModelData.h"
flamegpu/model/ModelData.h:11:#include "flamegpu/defines.h"
flamegpu/model/ModelData.h:12:#include "flamegpu/runtime/HostAPI_macros.h"
flamegpu/model/ModelData.h:13:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/model/ModelDescription.h:10:#include "flamegpu/gpu/CUDAEnsemble.h"
flamegpu/model/ModelDescription.h:11:#include "flamegpu/model/ModelData.h"
flamegpu/model/ModelDescription.h:12:#include "flamegpu/gpu/CUDASimulation.h"
flamegpu/model/ModelDescription.h:13:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/model/SubAgentData.h:8:#include "flamegpu/model/SubModelData.h"
flamegpu/model/SubModelData.h:8:#include "flamegpu/model/SubModelDescription.h"
flamegpu/model/Variable.h:12:#include "flamegpu/pop/detail/MemoryVector.h"
flamegpu/pop/AgentInstance.h:10:#include "flamegpu/model/AgentData.h"
flamegpu/pop/AgentInstance.h:11:#include "flamegpu/pop/AgentVector.h"
flamegpu/pop/AgentInstance.h:12:#include "flamegpu/util/Any.h"
flamegpu/pop/AgentVector_Agent.h:16:#include "flamegpu/pop/AgentVector.h"
flamegpu/pop/AgentVector_Agent.h:17:#include "flamegpu/util/type_decode.h"
flamegpu/pop/AgentVector.h:10:#include "flamegpu/pop/detail/MemoryVector.h"
flamegpu/pop/AgentVector.h:11:#include "flamegpu/model/AgentData.h"
flamegpu/pop/AgentVector.h:624:#include "flamegpu/pop/AgentVector_Agent.h"
flamegpu/pop/AgentVector.h:9:#include "flamegpu/defines.h"
flamegpu/pop/detail/GenericMemoryVector.h:11:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/pop/detail/MemoryVector.h:11:#include "flamegpu/pop/detail/GenericMemoryVector.h"
flamegpu/pop/detail/MemoryVector.h:12:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/pop/DeviceAgentVector.h:4:#include "flamegpu/pop/AgentVector.h"
flamegpu/pop/DeviceAgentVector.h:5:#include "flamegpu/pop/DeviceAgentVector_impl.h"
flamegpu/pop/DeviceAgentVector_impl.h:12:#include "flamegpu/pop/AgentVector.h"
flamegpu/pop/DeviceAgentVector_impl.h:13:#include "flamegpu/gpu/CUDAFatAgentStateList.h"  // VariableBuffer
flamegpu/runtime/AgentFunctionCondition.cuh:10:#include "flamegpu/runtime/detail/curve/DeviceCurve.cuh"
flamegpu/runtime/AgentFunctionCondition.cuh:7:#include "flamegpu/runtime/DeviceAPI.cuh"
flamegpu/runtime/AgentFunctionCondition.cuh:8:#include "flamegpu/runtime/AgentFunctionCondition_shim.cuh"
flamegpu/runtime/AgentFunction.cuh:10:#include "flamegpu/exception/FLAMEGPUDeviceException.cuh"
flamegpu/runtime/AgentFunction.cuh:11:#include "flamegpu/runtime/AgentFunction_shim.cuh"
flamegpu/runtime/AgentFunction.cuh:13:#include "flamegpu/runtime/detail/curve/DeviceCurve.cuh"
flamegpu/runtime/AgentFunction.cuh:7:#include "flamegpu/util/detail/curand.cuh"
flamegpu/runtime/AgentFunction.cuh:8:#include "flamegpu/runtime/detail/SharedBlock.h"
flamegpu/runtime/AgentFunction.cuh:9:#include "flamegpu/defines.h"
flamegpu/runtime/detail/curve/DeviceCurve.cuh:4:#include "flamegpu/runtime/detail/SharedBlock.h"
flamegpu/runtime/detail/curve/DeviceCurve.cuh:5:#include "flamegpu/runtime/detail/curve/Curve.cuh"
flamegpu/runtime/detail/curve/DeviceCurve.cuh:6:#include "flamegpu/exception/FLAMEGPUDeviceException_device.cuh"
flamegpu/runtime/detail/curve/DeviceCurve.cuh:7:#include "flamegpu/util/type_decode.h"
flamegpu/runtime/detail/curve/HostCurve.cuh:11:#include "flamegpu/runtime/detail/curve/Curve.cuh"
flamegpu/runtime/detail/curve/HostCurve.cuh:12:#include "flamegpu/exception/FLAMEGPUDeviceException.cuh"
flamegpu/runtime/detail/SharedBlock.h:4:#include "flamegpu/runtime/detail/curve/Curve.cuh"
flamegpu/runtime/DeviceAPI.cuh:10:#include "flamegpu/runtime/detail/curve/DeviceCurve.cuh"
flamegpu/runtime/DeviceAPI.cuh:11:#include "flamegpu/runtime/messaging_device.h"
flamegpu/runtime/DeviceAPI.cuh:15:#include "flamegpu/runtime/utility/AgentRandom.cuh"
flamegpu/runtime/DeviceAPI.cuh:16:#include "flamegpu/runtime/utility/DeviceEnvironment.cuh"
flamegpu/runtime/DeviceAPI.cuh:17:#include "flamegpu/runtime/AgentFunction.cuh"
flamegpu/runtime/DeviceAPI.cuh:18:#include "flamegpu/runtime/AgentFunctionCondition.cuh"
flamegpu/runtime/DeviceAPI.cuh:19:#include "flamegpu/defines.h"
flamegpu/runtime/HostAgentAPI.cuh:23:#include "flamegpu/sim/AgentInterface.h"
flamegpu/runtime/HostAgentAPI.cuh:24:#include "flamegpu/model/AgentDescription.h"
flamegpu/runtime/HostAgentAPI.cuh:25:#include "flamegpu/runtime/HostAPI.h"
flamegpu/runtime/HostAgentAPI.cuh:26:#include "flamegpu/gpu/CUDASimulation.h"
flamegpu/runtime/HostAgentAPI.cuh:27:#include "flamegpu/gpu/CUDAAgent.h"
flamegpu/runtime/HostAgentAPI.cuh:28:#include "flamegpu/pop/DeviceAgentVector.h"
flamegpu/runtime/HostAgentAPI.cuh:29:#include "flamegpu/pop/DeviceAgentVector_impl.h"
flamegpu/runtime/HostAgentAPI.cuh:30:#include "flamegpu/sim/AgentLoggingConfig_Reductions.cuh"
flamegpu/runtime/HostAgentAPI.cuh:31:#include "flamegpu/sim/AgentLoggingConfig_SumReturn.h"
flamegpu/runtime/HostAgentAPI.cuh:32:#include "flamegpu/util/type_decode.h"
flamegpu/runtime/HostAPI.h:12:#include "flamegpu/gpu/detail/CUDAErrorChecking.cuh"
flamegpu/runtime/HostAPI.h:13:#include "flamegpu/runtime/utility/HostRandom.cuh"
flamegpu/runtime/HostAPI.h:14:#include "flamegpu/runtime/utility/HostEnvironment.cuh"
flamegpu/runtime/HostAPI.h:15:#include "flamegpu/runtime/HostAPI_macros.h"
flamegpu/runtime/HostAPI.h:16:#include "flamegpu/runtime/HostNewAgentAPI.h"
flamegpu/runtime/HostAPI.h:17:#include "flamegpu/util/detail/cuda.cuh"
flamegpu/runtime/HostFunctionCallback.h:4:#include "flamegpu/runtime/HostAPI_macros.h"
flamegpu/runtime/HostNewAgentAPI.h:10:#include "flamegpu/util/type_decode.h"
flamegpu/runtime/HostNewAgentAPI.h:8:#include "flamegpu/model/Variable.h"
flamegpu/runtime/HostNewAgentAPI.h:9:#include "flamegpu/defines.h"
flamegpu/runtime/messaging_device.h:10:#include "flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DDevice.cuh"
flamegpu/runtime/messaging_device.h:11:#include "flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DDevice.cuh"
flamegpu/runtime/messaging_device.h:12:#include "flamegpu/runtime/messaging/MessageArray/MessageArrayDevice.cuh"
flamegpu/runtime/messaging_device.h:13:#include "flamegpu/runtime/messaging/MessageArray2D/MessageArray2DDevice.cuh"
flamegpu/runtime/messaging_device.h:14:#include "flamegpu/runtime/messaging/MessageArray3D/MessageArray3DDevice.cuh"
flamegpu/runtime/messaging_device.h:15:#include "flamegpu/runtime/messaging/MessageBucket/MessageBucketDevice.cuh"
flamegpu/runtime/messaging_device.h:8:#include "flamegpu/runtime/messaging/MessageNone/MessageNoneDevice.cuh"
flamegpu/runtime/messaging_device.h:9:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh"
flamegpu/runtime/messaging.h:10:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/runtime/messaging.h:11:#include "flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DHost.h"
flamegpu/runtime/messaging.h:12:#include "flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DHost.h"
flamegpu/runtime/messaging.h:13:#include "flamegpu/runtime/messaging/MessageArray/MessageArrayHost.h"
flamegpu/runtime/messaging.h:14:#include "flamegpu/runtime/messaging/MessageArray2D/MessageArray2DHost.h"
flamegpu/runtime/messaging.h:15:#include "flamegpu/runtime/messaging/MessageArray3D/MessageArray3DHost.h"
flamegpu/runtime/messaging.h:16:#include "flamegpu/runtime/messaging/MessageBucket/MessageBucketHost.h"
flamegpu/runtime/messaging.h:9:#include "flamegpu/runtime/messaging/MessageNone/MessageNoneHost.h"
flamegpu/runtime/messaging/MessageArray2D.h:4:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageArray2D/MessageArray2DDevice.cuh:4:#include "flamegpu/runtime/messaging/MessageArray2D.h"
flamegpu/runtime/messaging/MessageArray2D/MessageArray2DDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh"
flamegpu/runtime/messaging/MessageArray2D/MessageArray2DHost.h:10:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/runtime/messaging/MessageArray2D/MessageArray2DHost.h:8:#include "flamegpu/model/Variable.h"
flamegpu/runtime/messaging/MessageArray2D/MessageArray2DHost.h:9:#include "flamegpu/runtime/messaging/MessageArray2D.h"
flamegpu/runtime/messaging/MessageArray3D.h:4:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageArray3D.h:5:#include "flamegpu/runtime/messaging/MessageArray2D.h"
flamegpu/runtime/messaging/MessageArray3D/MessageArray3DDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageArray3D.h"
flamegpu/runtime/messaging/MessageArray3D/MessageArray3DDevice.cuh:6:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh"
flamegpu/runtime/messaging/MessageArray3D/MessageArray3DHost.h:10:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/runtime/messaging/MessageArray3D/MessageArray3DHost.h:8:#include "flamegpu/model/Variable.h"
flamegpu/runtime/messaging/MessageArray3D/MessageArray3DHost.h:9:#include "flamegpu/runtime/messaging/MessageArray3D.h"
flamegpu/runtime/messaging/MessageArray.h:4:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageArray/MessageArrayDevice.cuh:4:#include "flamegpu/runtime/messaging/MessageArray.h"
flamegpu/runtime/messaging/MessageArray/MessageArrayDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh"
flamegpu/runtime/messaging/MessageArray/MessageArrayHost.h:7:#include "flamegpu/model/Variable.h"
flamegpu/runtime/messaging/MessageArray/MessageArrayHost.h:8:#include "flamegpu/runtime/messaging/MessageArray.h"
flamegpu/runtime/messaging/MessageArray/MessageArrayHost.h:9:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/runtime/messaging/MessageBruteForce.h:4:#include "flamegpu/runtime/messaging/MessageNone.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh:4:#include "flamegpu/defines.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageNone.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh:6:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh:8:#include "flamegpu/runtime/detail/curve/DeviceCurve.cuh"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h:10:#include "flamegpu/model/Variable.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h:11:#include "flamegpu/gpu/detail/CUDAErrorChecking.cuh"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h:13:#include "flamegpu/runtime/messaging/MessageNone/MessageNoneHost.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h:14:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h:15:#include "flamegpu/runtime/messaging/MessageSortingType.h"
flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h:16:#include "flamegpu/util/type_decode.h"
flamegpu/runtime/messaging/MessageBucket.h:10:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageBucket.h:9:#include "flamegpu/runtime/messaging/MessageNone.h"
flamegpu/runtime/messaging/MessageBucket/MessageBucketDevice.cuh:4:#include "flamegpu/runtime/messaging/MessageBucket.h"
flamegpu/runtime/messaging/MessageBucket/MessageBucketDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh"
flamegpu/runtime/messaging/MessageBucket/MessageBucketHost.h:7:#include "flamegpu/model/Variable.h"
flamegpu/runtime/messaging/MessageBucket/MessageBucketHost.h:8:#include "flamegpu/runtime/messaging/MessageBucket.h"
flamegpu/runtime/messaging/MessageBucket/MessageBucketHost.h:9:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/runtime/messaging/MessageNone.h:4:#include "flamegpu/defines.h"
flamegpu/runtime/messaging/MessageNone/MessageNoneDevice.cuh:4:#include "flamegpu/runtime/detail/curve/Curve.cuh"
flamegpu/runtime/messaging/MessageNone/MessageNoneDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageNone.h"
flamegpu/runtime/messaging/MessageNone/MessageNoneHost.h:4:#include "flamegpu/runtime/messaging/MessageSpecialisationHandler.h"
flamegpu/runtime/messaging/MessageNone/MessageNoneHost.h:5:#include "flamegpu/runtime/messaging/MessageNone.h"
flamegpu/runtime/messaging/MessageSpatial2D.h:4:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DDevice.cuh:4:#include "flamegpu/runtime/messaging/MessageSpatial2D.h"
flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh"
flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DHost.h:7:#include "flamegpu/model/Variable.h"
flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DHost.h:8:#include "flamegpu/runtime/messaging/MessageSpatial2D.h"
flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DHost.h:9:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/runtime/messaging/MessageSpatial3D.h:4:#include "flamegpu/runtime/messaging/MessageBruteForce.h"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DDevice.cuh:4:#include "flamegpu/runtime/messaging/MessageSpatial3D.h"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DDevice.cuh:5:#include "flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DDevice.cuh"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DDevice.cuh:6:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceDevice.cuh"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DHost.h:10:#include "flamegpu/runtime/messaging/MessageSpatial2D/MessageSpatial2DHost.h"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DHost.h:11:#include "flamegpu/runtime/messaging/MessageBruteForce/MessageBruteForceHost.h"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DHost.h:7:#include "flamegpu/gpu/CUDAMessage.h"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DHost.h:8:#include "flamegpu/util/nvtx.h"
flamegpu/runtime/messaging/MessageSpatial3D/MessageSpatial3DHost.h:9:#include "flamegpu/runtime/messaging/MessageSpatial3D.h"
flamegpu/runtime/utility/AgentRandom.cuh:6:#include "flamegpu/util/detail/curand.cuh"
flamegpu/runtime/utility/AgentRandom.cuh:7:#include "flamegpu/util/detail/StaticAssert.h"
flamegpu/runtime/utility/AgentRandom.cuh:8:#include "flamegpu/exception/FLAMEGPUDeviceException.cuh"
flamegpu/runtime/utility/DeviceEnvironment.cuh:11:#include "flamegpu/runtime/detail/curve/DeviceCurve.cuh"
flamegpu/runtime/utility/DeviceEnvironment.cuh:8:#include "flamegpu/runtime/utility/DeviceMacroProperty.cuh"
flamegpu/runtime/utility/DeviceEnvironment.cuh:9:#include "flamegpu/util/type_decode.h"
flamegpu/runtime/utility/EnvironmentManager.cuh:15:#include "flamegpu/defines.h"
flamegpu/runtime/utility/EnvironmentManager.cuh:16:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/runtime/utility/EnvironmentManager.cuh:17:#include "flamegpu/runtime/detail/curve/HostCurve.cuh"
flamegpu/runtime/utility/EnvironmentManager.cuh:18:#include "flamegpu/util/type_decode.h"
flamegpu/runtime/utility/EnvironmentManager.cuh:19:#include "flamegpu/util/Any.h"
flamegpu/runtime/utility/HostEnvironment.cuh:15:#include "flamegpu/gpu/CUDAMacroEnvironment.h"
flamegpu/runtime/utility/HostEnvironment.cuh:16:#include "flamegpu/gpu/detail/CUDAErrorChecking.cuh"
flamegpu/runtime/utility/HostEnvironment.cuh:17:#include "flamegpu/runtime/utility/EnvironmentManager.cuh"
flamegpu/runtime/utility/HostEnvironment.cuh:18:#include "flamegpu/runtime/utility/HostMacroProperty.cuh"
flamegpu/runtime/utility/HostRandom.cuh:6:#include "flamegpu/util/detail/StaticAssert.h"
flamegpu/runtime/utility/HostRandom.cuh:7:#include "flamegpu/runtime/utility/RandomManager.cuh"
flamegpu/runtime/utility/RandomManager.cuh:10:#include "flamegpu/sim/Simulation.h"
flamegpu/runtime/utility/RandomManager.cuh:8:#include "flamegpu/defines.h"
flamegpu/runtime/utility/RandomManager.cuh:9:#include "flamegpu/util/detail/curand.cuh"
flamegpu/sim/AgentInterface.h:7:#include "flamegpu/model/ModelData.h"
flamegpu/sim/AgentInterface.h:8:#include "flamegpu/defines.h"
flamegpu/sim/AgentLoggingConfig.h:10:#include "flamegpu/sim/LoggingConfig.h"
flamegpu/sim/AgentLoggingConfig.h:11:#include "flamegpu/sim/AgentLoggingConfig_Reductions.cuh"
flamegpu/sim/AgentLoggingConfig.h:12:#include "flamegpu/sim/AgentLoggingConfig_SumReturn.h"
flamegpu/sim/AgentLoggingConfig.h:13:#include "flamegpu/runtime/HostAgentAPI.cuh"
flamegpu/sim/LogFrame.h:12:#include "flamegpu/sim/LoggingConfig.h"
flamegpu/sim/LogFrame.h:13:#include "flamegpu/util/Any.h"
flamegpu/sim/LogFrame.h:14:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/sim/LoggingConfig.h:10:#include "flamegpu/util/StringPair.h"
flamegpu/sim/LoggingConfig.h:11:#include "flamegpu/runtime/HostAgentAPI.cuh"
flamegpu/sim/LoggingConfig.h:12:#include "flamegpu/model/ModelData.h"
flamegpu/sim/LoggingConfig.h:13:#include "flamegpu/gpu/CUDAEnsemble.h"
flamegpu/sim/RunPlan.h:10:#include "flamegpu/model/EnvironmentDescription.h"
flamegpu/sim/RunPlan.h:11:#include "flamegpu/util/Any.h"
flamegpu/sim/RunPlan.h:12:#include "flamegpu/util/type_decode.h"
flamegpu/sim/RunPlan.h:13:#include "flamegpu/gpu/CUDAEnsemble.h"
flamegpu/sim/RunPlanVector.h:11:#include "flamegpu/sim/RunPlan.h"
flamegpu/sim/RunPlanVector.h:12:#include "flamegpu/util/detail/StaticAssert.h"
flamegpu/sim/RunPlanVector.h:13:#include "flamegpu/util/type_decode.h"
flamegpu/sim/RunPlanVector.h:14:#include "flamegpu/model/EnvironmentData.h"
flamegpu/sim/SimLogger.h:11:#include "flamegpu/sim/LogFrame.h"
flamegpu/sim/SimRunner.h:13:#include "flamegpu/defines.h"
flamegpu/sim/SimRunner.h:14:#include "flamegpu/sim/LogFrame.h"
flamegpu/sim/Simulation.h:10:#include "flamegpu/defines.h"
flamegpu/sim/Simulation.h:11:#include "flamegpu/sim/AgentInterface.h"
flamegpu/sim/Simulation.h:12:#include "flamegpu/util/Any.h"
flamegpu/util/detail/compute_capability.cuh:6:#include "flamegpu/gpu/detail/CUDAErrorChecking.cuh"
flamegpu/util/detail/cuda.cuh:11:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/util/detail/CUDAEventTimer.cuh:6:#include "flamegpu/util/detail/Timer.h"
flamegpu/util/detail/CUDAEventTimer.cuh:7:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/util/detail/CUDAEventTimer.cuh:8:#include "flamegpu/gpu/detail/CUDAErrorChecking.cuh"
flamegpu/util/detail/SteadyClockTimer.h:6:#include "flamegpu/util/detail/Timer.h"
flamegpu/util/detail/SteadyClockTimer.h:7:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/visualiser/AgentStateVis.h:10:#include "flamegpu/visualiser/config/Stock.h"
flamegpu/visualiser/AgentStateVis.h:9:#include "flamegpu/visualiser/config/AgentStateConfig.h"
flamegpu/visualiser/AgentVis.h:12:#include "flamegpu/visualiser/AgentStateVis.h"
flamegpu/visualiser/AgentVis.h:13:#include "flamegpu/visualiser/config/AgentStateConfig.h"
flamegpu/visualiser/AgentVis.h:14:#include "flamegpu/visualiser/config/Stock.h"
flamegpu/visualiser/AgentVis.h:15:#include "flamegpu/visualiser/config/TexBufferConfig.h"
flamegpu/visualiser/color/AutoPalette.h:6:#include "flamegpu/visualiser/color/Color.h"
flamegpu/visualiser/color/AutoPalette.h:7:#include "flamegpu/visualiser/color/Palette.h"
flamegpu/visualiser/color/Color.h:7:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/visualiser/color/DiscreteColor.h:10:#include "flamegpu/visualiser/color/ColorFunction.h"
flamegpu/visualiser/color/DiscreteColor.h:11:#include "flamegpu/visualiser/color/Color.h"
flamegpu/visualiser/color/DiscreteColor.h:9:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/visualiser/color/HSVInterpolation.h:6:#include "flamegpu/visualiser/color/ColorFunction.h"
flamegpu/visualiser/color/Palette.h:10:#include "flamegpu/visualiser/color/ViridisInterpolation.h"
flamegpu/visualiser/color/Palette.h:9:#include "flamegpu/visualiser/color/Color.h"
flamegpu/visualiser/color/StaticColor.h:6:#include "flamegpu/visualiser/color/ColorFunction.h"
flamegpu/visualiser/color/StaticColor.h:7:#include "flamegpu/visualiser/color/Color.h"
flamegpu/visualiser/color/ViridisInterpolation.h:7:#include "flamegpu/visualiser/color/ColorFunction.h"
flamegpu/visualiser/color/ViridisInterpolation.h:8:#include "flamegpu/visualiser/color/Color.h"
flamegpu/visualiser/LineVis.h:8:#include "flamegpu/visualiser/config/LineConfig.h"
flamegpu/visualiser/ModelVis.h:12:#include "flamegpu/visualiser/AgentVis.h"
flamegpu/visualiser/ModelVis.h:13:#include "flamegpu/visualiser/StaticModelVis.h"
flamegpu/visualiser/ModelVis.h:14:#include "flamegpu/visualiser/LineVis.h"
flamegpu/visualiser/ModelVis.h:15:#include "flamegpu/visualiser/PanelVis.h"
flamegpu/visualiser/ModelVis.h:16:#include "flamegpu/visualiser/color/AutoPalette.h"
flamegpu/visualiser/ModelVis.h:17:#include "flamegpu/visualiser/config/ModelConfig.h"
flamegpu/visualiser/PanelVis.h:10:#include "flamegpu/model/EnvironmentData.h"
flamegpu/visualiser/PanelVis.h:11:#include "flamegpu/visualiser/config/ModelConfig.h"
flamegpu/visualiser/PanelVis.h:9:#include "flamegpu/exception/FLAMEGPUException.h"
flamegpu/visualiser/StaticModelVis.h:5:#include "flamegpu/visualiser/config/ModelConfig.h"
flamegpu/visualiser/visualiser_api.h:10:#include "flamegpu/visualiser/color/AutoPalette.h"
flamegpu/visualiser/visualiser_api.h:11:#include "flamegpu/visualiser/color/StaticColor.h"
flamegpu/visualiser/visualiser_api.h:12:#include "flamegpu/visualiser/color/DiscreteColor.h"
flamegpu/visualiser/visualiser_api.h:13:#include "flamegpu/visualiser/color/HSVInterpolation.h"
flamegpu/visualiser/visualiser_api.h:5:#include "flamegpu/visualiser/ModelVis.h"
flamegpu/visualiser/visualiser_api.h:6:#include "flamegpu/visualiser/AgentVis.h"
flamegpu/visualiser/visualiser_api.h:7:#include "flamegpu/visualiser/AgentStateVis.h"
flamegpu/visualiser/visualiser_api.h:8:#include "flamegpu/visualiser/color/Color.h"
flamegpu/visualiser/visualiser_api.h:9:#include "flamegpu/visualiser/color/Palette.h"

@ptheywood
Copy link
Member Author

Closed by #1007

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant