Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • T Trilinos
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 936
    • Issues 936
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 22
    • Merge requests 22
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • James Willenbring
  • Trilinos
  • Issues
  • #4196

Closed
Open
Created Jan 15, 2019 by James Willenbring@jmwilleOwner

Trilinos no longer builds with Scalar=complex<float>

Created by: mhoemmen

@trilinos/tpetra @trilinos/amesos2

I found this out when testing Amesos2. See e.g., #4194 (closed).

Current Behavior

Tpetra and downstream classes do not build with Scalar=complex<float>. I get errors of the form discussed here: https://github.com/kokkos/kokkos/issues/1964 . The case Scalar=Kokkos::complex<double> still works, because it uses a different overload of these Kokkos functions that does not attempt to put the output type in a union with unsigned long long int.

Motivation and Context

Sierra currently enables complex<float> in its Trilinos build. This error also showed up in #4194 (closed), since Amesos2 was incorrectly attempting to build with Scalar=complex<float>, even though it was not enabled in Tpetra.

Possible Solution

I am working on a work-around, namely to overload Kokkos::Impl::atomic_fetch_oper and Kokkos::Impl::atomic_oper_fetch specifically for Kokkos::complex<float>.

Steps to Reproduce

Set the CMake option Trilinos_ENABLE_COMPLEX_FLOAT:BOOL=ON.

Related Issues

  • Related to #4194 (closed)
Assignee
Assign to
Time tracking