/* calcsd.c                                                             */
#undef MAIN
#include "ransurf.h"
#include "local_proto.h"

void CalcSD(void)
{
    int Row, Col, DoFilter;
    double Effect;

    G_debug(2, "CalcSD()");

    FilterSD = 0.0;
    for (DoFilter = 0; DoFilter < NumFilters; DoFilter++) {
	CopyFilter(&Filter, AllFilters[DoFilter]);
	if (Filter.Mult < 0.0)
	    Filter.Mult *= -1.0;

	MakeBigF();
	for (Row = 0; Row < BigF.NumR; Row++) {
	    for (Col = 0; Col < BigF.NumC; Col++) {
		DistDecay(&Effect, Row - BigF.RowPlus, Col - BigF.ColPlus);
		FilterSD += Effect * Effect;
	    }
	}
    }

    G_debug(3, "(FilterSD):%.12lf", FilterSD);
    FilterSD = sqrt(FilterSD);
    G_debug(3, "(FilterSD):%.12lf", FilterSD);

    return;
}
