(Please don’t lob rocks at me. I love Python.)

  • lime!
    link
    fedilink
    English
    019 hours ago

    the main thing that makes fortran preferable to C is the way it handles arrays and vectors. due to different pointer semantics, they can be laid out more efficiently in memory, meaning less operations need to be done for a given calculation.

    • @LeninOnAPrayer@lemm.ee
      link
      fedilink
      English
      0
      edit-2
      16 hours ago

      Interesting. Is this a fundamental limitation of C or is it just more preferable and easier to use FORTRAN when implementing it?

      Meaning could the same performance be achieved in C but most optimized libraries are already written so why bother? Or basically C can’t achieve the memory optimization at all?

      • lime!
        link
        fedilink
        English
        0
        edit-2
        15 hours ago

        you can get the same performance by using the restrict keyword in C.

        basically, C allows pointer aliasing while fortran does not, which means C programs need to be able to handle cases when a value is accessed from multiple locations. fortran does not, so a lot of accesses can be optimized into immediates, or unrolled without guards.

        restrict is a pinky-promise to the compiler that no overlapping takes place, e.g. that a value will only be accessed from one place. it’s basically rust ownership semantics without enforcement.