autoStringsIndex Stringses_to_StringsIndex (Strings me, Strings classes) {
	try {
		autoStringsIndex tmp = Strings_to_StringsIndex (classes);
		long numberOfClasses = tmp -> classes -> size;

		autoStringsIndex him = StringsIndex_create (my numberOfStrings);
		for (long i = 1; i <= numberOfClasses; i++) {
			SimpleString t = (SimpleString) tmp -> classes -> item[i];
			autoSimpleString t2 = Data_copy (t);
			Collection_addItem_move (his classes.peek(), t2.move());
		}
		for (long j = 1; j <= my numberOfStrings; j++) {
			long index = 0;
			char32 *stringsj = my strings[j];
			for (long i = 1; i <= numberOfClasses; i++) {
				SimpleString ss = (SimpleString) his classes -> item[i];
				if (Melder_cmp (stringsj, ss -> string) == 0) {
					index = i;
					break;
				}
			}
			his classIndex[j] = index;
		}
		return him;
	} catch (MelderError) {
		Melder_throw (me, U": no StringsIndex created.");
	}
}
Example #2
0
int StringsIndex_getClass (StringsIndex me, char32 *klasLabel) {
	for (long i = 1; i <= my classes -> size; i++) {
		SimpleString ss = (SimpleString) my classes -> item[i];
		if (Melder_cmp (ss -> string, klasLabel) == 0) {
			return i;
		}
	}
	return 0;
}
Example #3
0
long FilesInMemory_getIndexFromId (FilesInMemory me, const char32 *id) {
	long index = 0;
	for (long i = 1; i <= my size; i++) {
		FileInMemory fim = (FileInMemory) my item[i];
		if (Melder_cmp (id, fim -> d_id) == 0) {
			index = i; break;
		}
	}
	return index;
}
void IntervalTier_cutIntervalsOnLabelMatch (IntervalTier me, const char32 *label) {
	long i = 1;
	while (i < my intervals -> size) {
		TextInterval ti = (TextInterval) my intervals -> item[i];
		TextInterval tip1 = (TextInterval) my intervals -> item[i + 1];
		if ( (label == 0 || (ti -> text != 0 && str32equ (ti -> text, label))) &&
		        (Melder_cmp (ti -> text, tip1 -> text) == 0)) {

			IntervalTier_cutInterval (me, i, 1);
		} else {
			i++;
		}
	}
}
static double TextGrid_getStartTimeOfFirstOccurence (TextGrid thee, long tierNumber, const char32 *label) {
	TextGrid_checkSpecifiedTierNumberWithinRange (thee, tierNumber);
	IntervalTier intervalTier = (IntervalTier) thy tiers->at [tierNumber];
	if (intervalTier -> classInfo != classIntervalTier) {
		Melder_throw (U"Tier ", tierNumber, U" is not an interval tier.");
	}
	double start = NUMundefined;
	for (long iint = 1; iint <= intervalTier -> intervals.size; iint ++) {
		TextInterval ti = intervalTier -> intervals.at [iint];
		if (Melder_cmp (ti -> text, label) == 0) {
			start = ti -> xmin;
			break;
		}
	}
	return start;
}
autoStringsIndex Strings_to_StringsIndex (Strings me) {
	try {
		autoStringsIndex thee = StringsIndex_create (my numberOfStrings);
		autoPermutation sorted = Strings_to_Permutation (me, 1);
		long numberOfClasses = 0;
		char32 *strings = nullptr;
		for (long i = 1; i <= sorted -> numberOfElements; i++) {
			long index = sorted -> p[i];
			char32 *stringsi = my strings[index];
			if (i == 1 || Melder_cmp (strings, stringsi) != 0) {
				numberOfClasses++;
				autoSimpleString him = SimpleString_create (stringsi);
				Collection_addItem_move (thy classes.peek(), him.move());
				strings = stringsi;
			}
			thy classIndex[index] = numberOfClasses;
		}
		return thee;
	} catch (MelderError) {
		Melder_throw (me, U": no StringsIndex created.");
	}
}
Example #7
0
autoConfusion Confusion_createSimple (const char32 *labels) {
	try {
		long numberOfLabels = Melder_countTokens (labels);
		if (numberOfLabels < 1) {
			Melder_throw (U"Not enough labels.");
		}
		autoConfusion me = Confusion_create (numberOfLabels, numberOfLabels);
		long ilabel = 1;
		for (char32 *token = Melder_firstToken (labels); token != 0; token = Melder_nextToken ()) {
			for (long i = 1; i <= ilabel - 1; i++) {
				if (Melder_cmp (token, my rowLabels[i]) == 0) {
					Melder_throw (U"Label ", i, U"and ", ilabel, U"may not be equal.");
				}
			}
			TableOfReal_setRowLabel (me.get(), ilabel, token);
			TableOfReal_setColumnLabel (me.get(), ilabel, token);
			ilabel++;
		}
		return me;
	} catch (MelderError) {
		Melder_throw (U"Simple Confusion not created.");
	}
}
Example #8
0
int structFileInMemorySet :: s_compare_id (FileInMemory me, FileInMemory thee) {
	return Melder_cmp (my d_id, thy d_id);
}
Example #9
0
int structFileInMemorySet :: s_compare_name (FileInMemory me, FileInMemory thee) {
	return Melder_cmp (my d_path, thy d_path);
}
Example #10
0
int structFilesInMemory :: s_compare_id (I, thou) {
	iam (FileInMemory); thouart (FileInMemory);
	return Melder_cmp (my d_id, thy d_id);
}
Example #11
0
int structFilesInMemory :: s_compare_name (I, thou) {
	iam (FileInMemory); thouart (FileInMemory);
	return Melder_cmp (my d_path, thy d_path);
}