Automated g4 rollback of changelist 381028293.

*** Reason for rollback ***

parpack depends on the timing functions that I removed from the lapack build..

*** Original change description ***

1. C++ implementations of ilaver to report the Eigen version number.  Though you could make the argument that it should report the LAPACK test suite number that this passes.
2.  xLAMCH implementation using <limits>. I can simplify the code for sfmin further because I know which branch of the if statement it takes.
3. Because xLAMCH and xLAMC2 live in the same fortran file, our overlay technique for testing LAPACK runs into problems because of linker issues. So we also split that function into it...

***

PiperOrigin-RevId: 381082649
diff --git a/lapack/experimental/ilaver.cpp b/lapack/experimental/ilaver.cpp
deleted file mode 100644
index ddab5dd..0000000
--- a/lapack/experimental/ilaver.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "../../Eigen/Core"
-
-extern "C" {
-void ilaver_(int* major, int* minor, int* patch);
-}
-
-void ilaver_(int* major, int* minor, int* patch) {
-  *major = EIGEN_WORLD_VERSION;
-  *minor = EIGEN_MAJOR_VERSION;
-  *patch = EIGEN_MINOR_VERSION;
-}
diff --git a/lapack/experimental/xlamch.cpp b/lapack/experimental/xlamch.cpp
deleted file mode 100644
index 3449f9f..0000000
--- a/lapack/experimental/xlamch.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-#include <limits>
-
-extern "C" {
-float slamch_(char* cmach);
-double dlamch_(char* cmach);
-float slamc3_(char* cmach);
-double dlamc3_(char* cmach);
-}
-
-// Determines machine parameters.
-template <typename T>
-T xlamch(const char c) {
-  if (c ==  'E' || c ==  'e') {
-    // eps = relative machine precision
-    return std::numeric_limits<T>::epsilon()/std::numeric_limits<T>::radix;
-  }
-
-  if (c == 'S' || c == 's') {
-    // sfmin = safe minimum, such that 1 / sfmin does not overflow
-    T sfmin = std::numeric_limits<T>::min();
-    const T small = T(1) / std::numeric_limits<T>::max();
-    if (small >= sfmin) {
-      sfmin = small * (T(1) + std::numeric_limits<T>::epsilon() /
-                                  std::numeric_limits<T>::radix);
-    }
-    return sfmin;
-  }
-
-  if (c ==  'B' || c ==  'b') {
-    // base =  base of the machine.
-    return std::numeric_limits<T>::radix;
-  }
-
-  if (c ==  'P' || c ==  'p') {
-    // prec = eps * base
-    return std::numeric_limits<T>::epsilon();
-  }
-
-  if (c ==  'N' || c ==  'n') {
-    // t = number of (base) digits in the mantissa
-    return std::numeric_limits<T>::digits;
-  }
-
-  if (c ==  'R' || c ==  'r') {
-    // rnd = 1.0 when rounding occurs in addition.
-    return 1;
-  }
-
-  if (c ==  'M' || c ==  'm') {
-    // emin = minimum exponent before (gradual) underflow
-    return std::numeric_limits<T>::min_exponent;
-  }
-
-  if (c ==  'U' || c ==  'u') {
-    // rmin =  underflow threshold - base**(emin-1)
-    return std::numeric_limits<T>::min();
-  }
-
-  if (c ==  'L' || c ==  'l') {
-    // emax = largest exponent before overflow
-    return std::numeric_limits<T>::max_exponent;
-  }
-  if (c ==  'O' || c ==  'o') {
-    // rmax  = overflow threshold  - (base**emax)*(1-eps)
-    return std::numeric_limits<T>::max();
-  }
-
-  return 0;
-}
-
-float slamch_(char* cmach) { return xlamch<float>(*cmach); }
-double dlamch_(char* cmach) { return xlamch<double>(*cmach); }
-
-// xLAMC3  is intended to force  A  and  B  to be stored prior to doing
-// the addition of  A  and  B ,  for use in situations where optimizers
-// might hold one of these in a register.
-float slamc3_(float *a, float *b) {
-  volatile float retval = *a + *b;
-  return retval;
-}
-
-double dlamc3_(double *a, double *b) {
-  volatile double retval = *a + *b;
-  return retval;
-}
-