src/analog/functions.cpp

Sat, 28 Jan 2023 10:36:59 +0100

author
Michiel Broek <mbroek@mbse.eu>
date
Sat, 28 Jan 2023 10:36:59 +0100
changeset 478
a3653722b0d6
parent 316
dcd472be9ae8
permissions
-rw-r--r--

Add dry primary yeasts weights to get a mixed total. Use the parameters from the first and mmost used yeast. Changed in products and recipes. Recalculated WLP purepitch viability and planned next generation purepitch. We need a better way to set these parameters like a packages table. Fixed several yeast edit values due to adding a STA1 column. Removed several unneeded refresh_all() calls as they screwed the sorting of the yeasts during edit. Added STA1 display to recipes. Changed products database starter_viability from integer to float.

/***************************************************************************
 *   Copyright (C) 2006-2008 by Tomasz Ziobrowski                          *
 *   http://www.3electrons.com                                             *
 *   e-mail: t.ziobrowski@3electrons.com                                   *
 *                                                                         *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

#include "functions.h"

#include <iostream>
using namespace std; 

double minimalStep(double scaleSize, int steps)
{
  scaleSize = std::abs(scaleSize); 
  double ms = scaleSize/steps; 
  double fractions[]={5,2,1}; 
  double multiply = 10; 
  double fraction = 1.0; 
  double test; 
  if (static_cast<int>(ms)<=5) multiply = 0.1 ; 

  while (true)
  {
     for (int i=0;i<3;i++)
     {
      //cout<<"Fractions:"<<fractions[i]<<" scaleSize:"<<scaleSize<<" steps:"<<steps<<" steps*farction:"<<steps*fractions[i]<<endl; 
       if (fractions[i]<ms)
          { 
           fraction =fractions[i]; 
          }
       
         fractions[i]*=multiply; 
         test = steps * fractions[i]; 
         if ( (test < scaleSize) && multiply< 1.0 ) return fraction; 
         if ( (test > scaleSize) && multiply> 1.0 ) return fraction; 
     }  
  }
 
  return fraction; 
}

mercurial