SRC/clargv.f(3)

πŸ’… NAME

SRC/clargv.f β€” bestie, this is a Fortran file from the Library Functions Manual and it's literally the home of clargv, ok?


✨ SYNOPSIS

πŸŽ€ Functions/Subroutines

  • subroutine clargv (n, x, incx, y, incy, c, incc) β€” CLARGV generates a vector of plane rotations with real cosines and complex sines.

🫢 Function/Subroutine Documentation

🌸 the actual signature, no cap

subroutine clargv (integer n, complex, dimension( * ) x, integer incx,
    complex, dimension( * ) y, integer incy, real, dimension( * ) c, integer
    incc)

CLARGV generates a vector of plane rotations with real cosines and complex sines. That's the whole vibe πŸ’«


πŸ¦‹ Purpose

okay so here's the deal, straight from the source:

!>
!> CLARGV generates a vector of complex plane rotations with real
!> cosines, determined by elements of the complex vectors x and y.
!> For i = 1,2,...,n
!>
!>    (        c(i)   s(i) ) ( x(i) ) = ( r(i) )
!>    ( -conjg(s(i))  c(i) ) ( y(i) ) = (   0  )
!>
!>    where c(i)**2 + ABS(s(i))**2 = 1
!>
!> The following conventions are used (these are the same as in CLARTG,
!> but differ from the BLAS1 routine CROTG):
!>    If y(i)=0, then c(i)=1 and s(i)=0.
!>    If x(i)=0, then c(i)=0 and s(i) is chosen so that r(i) is real.
!>

So like, it's cooking up rotations that zero out y(i) and stash the real good stuff in r(i). And note the conventions β€” same as CLARTG, but different from the BLAS1 routine CROTG. Don't mix them up bestie, iykyk πŸ™ˆ


πŸ’– Parameters

  • N
!>          N is INTEGER
!>          The number of plane rotations to be generated.
!>

literally just how many rotations we're generating ✨

  • X
!>          X is COMPLEX array, dimension (1+(N-1)*INCX)
!>          On entry, the vector x.
!>          On exit, x(i) is overwritten by r(i), for i = 1,...,n.
!>

comes in as the vector x, leaves as r(i) for i = 1,...,n β€” she got a glow-up on the way out πŸ’…

  • INCX
!>          INCX is INTEGER
!>          The increment between elements of X. INCX > 0.
!>

the stride between elements of X. must be INCX > 0 β€” no zero, no negative, periodt

  • Y
!>          Y is COMPLEX array, dimension (1+(N-1)*INCY)
!>          On entry, the vector y.
!>          On exit, the sines of the plane rotations.
!>

goes in as vector y, comes out holding the sines of the plane rotations πŸŒ€

  • INCY
!>          INCY is INTEGER
!>          The increment between elements of Y. INCY > 0.
!>

stride for Y, and again: INCY > 0 🫢

  • C
!>          C is REAL array, dimension (1+(N-1)*INCC)
!>          The cosines of the plane rotations.
!>

the cosines, and they're REAL β€” main character energy, no imaginary part allowed πŸ‘‘

  • INCC
!>          INCC is INTEGER
!>          The increment between elements of C. INCC > 0.
!>

stride for C. INCC > 0, we been knew πŸ’€


πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

the whole squad behind it, iconic honestly 🫑


🌈 Further Details

!>
!>  6-6-96 - Modified with a new algorithm by W. Kahan and J. Demmel
!>
!>  This version has a few statements commented out for thread safety
!>  (machine parameters are computed on each entry). 10 feb 03, SJH.
!>

so 6-6-96 it got a whole new algorithm from W. Kahan and J. Demmel β€” slay. And this version has a few statements commented out for thread safety because machine parameters get computed on each entry. 10 feb 03, SJH. β€” noted, bestie 🧚

⚠️ heads up: those commented-out statements are a thread-safety thing, not a "clean this up" invitation. leave them alone πŸ™ˆ

⭐ Definition

Definition at line 121 of file clargv.f. that's the exact spot, fr fr ✨


πŸ“ Author (of this page)

Generated automatically by Doxygen for LAPACK from the source code. a bot did this, and honestly? she ate πŸ€–πŸ’–


and that's the whole page!! brought to you by LAPACK Version 3.12.0, for SRC/clargv.f(3) β€” mwah, go generate some rotations bestie πŸ’œπŸŽ€

πŸ“¦ where this page comes from