protected static Ptg calcTranspose( Ptg[] operands )
	{
		String retArray = "";
		PtgArray ret = new PtgArray();
		if( !(operands[0] instanceof PtgArray) )
		{
			Ptg[] arr = operands[0].getComponents();
			//it's a list of values, convert to row-based
			for( Ptg anArr : arr )
			{
				retArray = retArray + anArr.getValue().toString() + ";";
			}
			retArray = "{" + retArray.substring( 0, retArray.length() - 1 ) + "}";
			ret.setVal( retArray );
		}
		else
		{    // transpose row/cols of an existing array
			PtgArray pa = (PtgArray) operands[0];
			Ptg[] arr = pa.getComponents();
			int nc = pa.getNumberOfColumns() + 1;
			int nr = pa.getNumberOfRows() + 1;
			for( int i = 0; i < nc; i++ )
			{
				for( int j = 0; j < (nc * nr); j += nc )
				{
					retArray = retArray + arr[i + j].getValue().toString() + ",";
				}
				retArray = retArray.substring( 0, retArray.length() - 1 ) + ";";
			}
			retArray = "{" + retArray.substring( 0, retArray.length() - 1 ) + "}";
			ret.setVal( retArray );
		}
		return ret;
	}