Essa é uma revisão anterior do documento!


Integração com R

Se R tiver uma API C ou C++ será modelza integra-lo á LUA. A melhor referência que disponho é o binder “luna.h”, que implementar um wrapper C++ para LUA. Tanto o codigo C++ do binder quanto um artigo explicando seu uso podem ser obtidos no site www.lua.org. As referências para esses recursos são:

http://lua-users.org/files/wiki_insecure/users/lpalozzi/luna.tar.gz http://www.lua.org/notes/ltn005.html

Estou terminando um texto que descreve como integrei o framewok C++ de TerraME com a linguagem LUA. Talvez esse documento seja util para vc! Termino em 2 dias e te mando…

Se R tiver realmente uma API C++, vc ainda poderá optar pelo uso do binder “toLua” que automaticamente vaz toda tarefa para vc. Alguns alunos meus preferiram essa opção. Eu preferi a anterior por ter o controle total do codigo em minhas mãos.

Se R não ticer uma API C++, então vc terá que que escrever um wrapper C++ para Java (supondo que R possua API java), e então usar os dois caminhos anteriores para ligar o wraper criado à linguagem LUA. Será trabalhoso, mas fácil.

Em LUA é possivel criar módulos (bibliotecas) e incluílas em outros modulos. Desta maneira, qualquer modelo TerraME pode incluir novo modulo e se beneficiar das funções por ele oferecidas. Acho que o comando é “import nome_do_modelo”. E , não tenho certeza, o modulo é declarado usando a palavra reservada “package”. Acho que vc já utilizou isso não foi? Quando criou um modulo com os serviços para implementação de agentes!

Manipulação de agentes no TerraMe

  • armazenamento de agentes
  • ForEachAgent
  • AddPlayer
  • RemovePlayer

Funções adicionais

  • NumberOfCells/NumberOfNeighbours
  • GetRandomCell/GetRandomneighbour/GetRandomAgent
  • Implementar um gerador de numeros aleatorios decente em lua
  • ApplyNeighbourhoodConstraint
  • Possibilidade de escrever dados em tabela externa (não ligada a geometria)
  • Protocolo send/receive?

Docs


QR Code
QR Code pessoais:pedro:doutorado:tiago (generated for current page)