#define cimg_debug 0

#include "CImg.h"
#include <ctype.h>
#include <valarray>
#include <assert.h>
#include <math.h>
#if ( defined(_MSC_VER) && _MSC_VER<=1200 ) || defined(__DMC__)
#define std
#endif

using namespace cimg_library;

int main(int argc,char **argv) {
	int i;
	if (argc < 3) exit(-1);
	for (i=0; i<argc; i++) printf("%s ", argv[i]);

	CImg<> p1(argv[1]), p2(argv[2]);
	if (!p1.is_sameXY(p2)) exit(-2);

	p1/=p1.mean(); p2/=p2.mean();
	//p1-=1.0; p2-=1.0;

	// double mse=0; // p1.MSE(p2);
	// double psnr=0; // p1.PSNR(p2);
	
	const unsigned long nb = cimg::min(p1.size(),p2.size());
	double dot = 0, euc = 0;
	for (unsigned long off=0; off<nb; ++off) {
		float diff = fabs(p1[off]-p2[off]);
		dot+=diff; euc += diff*diff;
	}
	dot/=nb; euc/=nb;
	
	printf("EUC ABS %f %f\n", sqrt(euc), dot);
	return 0;
}

