Automating embedded analysis capabilities using template-based generic programming